• 基于selenium的pyse自动化测试框架


    介绍:

    pyse基于selenium(webdriver)进行了简单的二次封装,比selenium所提供的方法操作更简洁。

    特点:

    • 默认使用CSS定位,同时支持多种定位方法(id\name\class\link_text\xpath\css)。
    • 本框架只是对selenium(webdriver)原生方法进行了简单的封装,精简为大约30个方法,这些方法基本能够胜任于我们的web自动化测试。
    • 以测试类为单位,自动打开和关闭浏览器,减少浏览器的打开/关闭次数,节省时间。
    • 自动生成/report/目录,以及HTML测试报告生成。
    • 自带断言方法,断言title、URL 和 text。

    安装说明:

    • Python3.5+ : https://www.python.org/
    • Selenium3.6.0+ : https://pypi.python.org/pypi/selenium

    进入pyse/目录,执行:

    > python setup.py install

    例子:

    请查看demo/test_case.py目录

    1. import pyse
    2. class BaiduTest(pyse.TestCase):
    3. def test_baidu(self):
    4. ''' baidu search key : pyse '''
    5. self.open("https://www.baidu.com/")
    6. self.type("#kw", "pyse")
    7. self.click("#su")
    8. self.assertTitle("pyse_百度搜索")
    9. if __name__ == '__main__':
    10. runner = pyse.TestRunner()
    11. runner.run()

    运行测试用例说明:

    • 测试用例文件命名必须以“__test__”开头。
    • 默认情况下使用 __Chrome__ 浏览器运行测试用例。
    • 元素定位方式默认使用 CSS 语法 `#kw`, 也可以显示的使用 `css=>#kw`。
    • pyse的TestCase类中默认封装了`assertTitle`、`assertUrl` 和 `assertText`等断言。
    • `TestRunner()` 默认匹配当前目录下"test*.py"的文件并执行。当然也可以指定测试目录,例如:TestRunner("path/you/project/test_case/") # 注意用斜线"/"表示路径。
    • 执行`run()`方法运行测试用例并生成测试报告,在调试测试用例过程中可以使用 `debug()` 方法将不会生成HTML测试报告。


    支持的浏览器及驱动:

    指定运行的浏览器:

    1. import pyse
    2. class YouTest(pyse.TestCase):
    3. @classmethod
    4. def setUpClass(cls):
    5. cls.driver = Pyse("chrome")
    6. def test_case(self):
    7. #……

    支持的浏览器:

    1. cls.driver = Pyse("firefox") #Firefox
    2. cls.driver = Pyse("chrome") # Chrome
    3. cls.driver = Pyse("ie") #IE
    4. cls.driver = Pyse("opera") #Opera
    5. cls.driver = Pyse("edge") #Edge
    6. cls.driver = Pyse("chrome_headless") #Chrome headless模式

    浏览器驱动下载地址:

    geckodriver(Firefox):https://github.com/mozilla/geckodriver/releases

    Chromedriver(Chrome):https://sites.google.com/a/chromium.org/chromedriver/home

    IEDriverServer(IE):http://selenium-release.storage.googleapis.com/index.html

    operadriver(Opera):https://github.com/operasoftware/operachromiumdriver/releases

    MicrosoftWebDriver(Edge):https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver

    ==========================================================

    #### 元素定位:

    pyse支持多种定位方式,id、name、class、link text、xpath和css。把定位方法与定位内容一体,写起更加简洁。

    定位方式(推荐使用 CSS):

    1. # 默认支持CSS语法
    2. driver.type(".s_ipt","pyse") #css
    3. driver.type("#su","pyse") #css
    4. driver.type("id=>kw", "pyse") #id
    5. driver.type("class=>s_ipt", "pyse") #class定位
    6. driver.type("name=>wd", "pyse") #name
    7. driver.type("xpath=>//*[@class='s_ipt']","pyse") #xpath
    8. driver.type("xpath=>//*[@id='kw']","pyse") #xpath
    9. driver.click_text("link_text=>新闻") #link text (点击百度首页上的"新闻"链接)

    ==========================================================

    css选择器参考手册:
    http://www.w3school.com.cn/cssref/css_selectors.asp

    #### 测试报告

    Python接口自动化测试零基础入门到精通(2023最新版)

  • 相关阅读:
    GhostNet实战:使用GhostNet实现图像分类任务(一)
    SQL底层执行原理
    常用的Java工具类
    PostgreSQL 的时间差DATEDIFF
    基于栅格地图的路径规划(一)基于Matlab二维、三维栅格地图的构建
    测试开发:10分钟Flask快速入门【建议收藏】
    JVM类加载机制
    【设计模式】 - 创建者模式 -建造者模式
    go 类型
    开创性的区块链操作系统项目——生物识别与机器学习
  • 原文地址:https://blog.csdn.net/jj2772367224/article/details/133909217