自动化测试——pytest框架介绍及示例
pytest 介绍及特点:
pytest是一个非常成熟的全功能的python第三方测试框架特点:1. 简单灵活,容易上手2. 支持参数化3. 能够支持简单的单元测试和复杂的功能测试;也可以用来做selenium/appium等自动化测试,接口自动化测试(常见方式:pytest+request+allure)4. 有很多第三方插件,还可以自定义扩展,如pytest-selenium(集成selenium)、pytest-html(html测试报告生成)、pytest-rerunfailures(失败case重试)、pytest-xdist(多CPU分发)、pytest-ordering(控制测试函数执行顺序)等5. 测试用例的skip(跳过测试⽅法)和xfail ( 执⾏预期失败操作 ) 处理6. 可以很好的和Jenkins集成7. 支持 allure 报告
安装:
pip3 insatll pytestpytest --version
运行方式:
>> 命令行 << :1. 指定执行的测试文件:(常用)pytest 路径/py文件名 pytest datas/testlogin.py注意: 的是test开头的⽂件,Test开头的类,⼩写的test开头的⽅法2. 带其他参数运行:pytest 路径/py文件名 -v # 显示测试的详细参数信息pytest 路径/py文件名 -s # 显示测试执行的输出信息3. 指定执行的测试类:pytest 测试文件::测试类 4. 指定执行的测试用例:pytest 测试文件::测试类::测试方法>> 脚本里执行 <<:1. pytest.main()
pytest初始化和结束⽅法:
**函数级别**setup()和 teardown() 1.初始化和结束⽅法必须在测试类的内部存在 2.setup运⾏于每个测试⽅法开始,teardown运⾏于每个测试⽅法结束, 有多少个测试⽅法会运⾏多少次初始化和结束⽅法 如果⽅法没有断⾔语句,那么默认断⾔成功的
**类级别** setup_class() 和 teardown_class() 1.存在于测试类内部 2.只会在类开始运⾏setup_class ,类的结束运⾏ teardown_class 不关⼼测试类内部有多少个测试⽅法 测试函数运⾏顺序:由上⾄下去运⾏
pytest配置⽂件
**配置⽂件名字:** pytest.ini tox.ini setup.cfg通常放在测试根⽬录下⾯配置⽂件⾸⾏必须式: [pytest]命令⾏参数:addopts = 命令⾏参数搜索测试⽬录:testpaths = 某个⽬录(通常是相对于根⽬录⽽⾔)搜索测试⽂件: python_files = ⽂件名通常会使⽤通配符⽅式 "*":代表任意字符搜索测试类: python_classes = 类名通常建议 通配符 "*"搜索测试⽅法: python_functions = ⽅法名通常建议 通配符 "*"配置⽂件好处: 可以约束 ⽂件名,类名,⽅法名 配置⽂件中不允许出现中⽂运⾏过程: 1.命令进⼊项⽬根⽬录 2.输⼊ pytest ->查找当前⽬录下的配置⽂件 3.匹配配置⽂件中命令⾏参数 4.搜索某个⽬录 -> 某些⽂件 -> 某些测试类 -> 某些测试⽅法 如果出现 "no tests ran " ->查找配置⽂件中 搜索⽬录->搜索⽂件->搜索类->搜索⽅法
pytest 测试报告:
自动化测试——同一个项目下共用3种方法 ( pytest + allure 、unitest + HTMLTestRunner、unitest + unittestreport )实践记录