一:pytest介绍
1.非常成熟的单元测试框架,比unittest更加灵活,容易上手 2.pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化 3.pytest可以实现测试用例的跳过以及rerun失败用例重试 4.pytest可以和allure生成漂亮的报告 5.pytest可以和jenkins持续集成 6.pytest有强大的插件,功能很实用 pytest pytest-html:生成html格式的自动化报告 pytest-xdist:测试用例分布式执行,多cpu分发 pytest-ordering:用于改变测试用例执行顺序 pytest-rerunfailures:用例失败重跑 allure-pytest:生成测试报告
二:pytest默认用例的规则以及基础应用
1.模块名必须以test_或者_test结尾开头 2.测试类必须以Test开头,并且不能带有init方法 3.测试用例必须以test_开头
三:pytest测试用例的运行方式
main函数执行方法: 1.运行所有pytest.main() 2.指定模块:pytest.main(['-vs', 'test_login.py']) 3.指定 目录:pytest.main(['-vs', './testcase']) 4.通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成pytest.main(['-vs', './testcase/test_login.py::test_001']) 命令行模式: 1.运行所有:pytest 2.指定模块:pytest -vs test_login.py 3.指定目录:pytest -vs ./testcase 4.指定目录:pytest -vs ./testcase/test_login.py::test_001 通过读取pytest.ini配置文件运行 [pytest] addopts=-vs 命令行参数,用空格分开 testpaths=./testcase 用例路径 python_files=test*.py 模块名的规则 python_classes=Test* 类名的规则 python_functions=test_* 方法名的规则 addopts = -vs --html ./report/report.html 1.Pytest.ini这个文件是pytest的单元测试框架核心配置文件 2.编码:必须是ANSI,可以使用notepad++来更改编码格式(编码---转为ANSI) 3.作用:改变pytest的默认行为 4.不管是主函数模式运行还是命令行模式运行,都会读取这个文件
四:常用参数介绍
执行的参数: -vs -v:输出相信信息 pytest -v -s:输出调试信息 -n:多线程运行(pytest-xdist) pytest -vs -n=2 return num 失败重跑 安装插件:pytest-rerunfailures raise Exception('ggg') 抛出异常 try except 解决异常 -x 出现一个用例失败,则停止测试 如:pytest -vs -x --maxfail 出现几个失败才终止 --html 生成htnl测试报告 安装插件:pytest-html pytest -vs --html ./reports/result.html -k 运行测试用例中包含某个字符穿的测试用例 pytest -vs -k "002"
五:pytest用例执行顺序
Unittest:是通过ascII的大小来执行 Pytest:默认从上往下 改变默认的执行顺序:使用mark标记 @pytest.mark.run(order=2)
六:分组执行(冒烟、分模块、web和接口的)
Pytest.ini [pytest] addopts = -vs testpaths = ./testcase python_files = test*.py python_classes = Test* python_functions = test_* markers = smoke:冒烟用例 usermanage:用户管理 Smoke: 冒烟用例,分布在各个模块里头 Pytest -vs -m "smoke" Pytest -vs -m "smoke or usermanage"