一、pytest常用插件合集
- pip install pytest 单元测试框架
- pip install pytest-html 生成html测试报告
- pip install pytest-xdist 测试用例分布式执行,多线程
- pip install pytest-ordering 用于改变测试用例的执行顺序
- pip install pytest-rerunfailures 用例失败重跑
- pip install allure-pytest 用于生成美观的测试报告
- pip install requests
- pip install pyyaml
二、pytest测试用例的运行方式
1.主函数模式
(1)运行所有:pytest.main()
(2)指定模块:pytest.main([’-vs’,‘test_demo.py’])需同级目录
(3)指定目录:pytest.main([’-vs’,’./testcase’]) 这俩可以组合使用
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成。
pytest.main([’-vs’,’./testcase/test_demo.py::test_03_func’])
参数详解:
-s:表示输出调试信息,包括print打印的信息
-v:显示更详细的信息
-vs:这两个参数一起用
-n:分布式运行,多线程 '-n=2
–reruns num :失败用例重跑
-x:表示只要有一个错误,立马停止测试
-maxfail=2:出现两个用例失败就停止。
-k:根据测试用例的部分字符串指定测试用例 -k ‘包含名称’
2.命令行模式
3.通过读取pytest.ini配置文件运行。
pytest.ini这个文件它是pytest单元测试框架的核心配置文件。
(1)位置:一般放在项目的根目录
(2)编码:必须是ANSI,可以使用notpad++修改编码格式。
(3)作用:改变pytest默认的行为。
三、pytest执行方式和分组
默认顺序:pytest执行顺序,从上到下
装饰器:
-
改变默认的执行顺序:
@pytest.mark.run(order=2) -
定义用例归属的类型,冒烟类型
@pytest.mark.run.smoke -
定义用例的归属的模块
@pytest.mark.run.usermanage
命令行执行测试用例方式
pytest -vs -m “smoke or usermanage” -
无条件跳过用例
@pytest.mark.skip(’跳过的原因‘) -
有条件跳过
age=1
@pytest.mark.skipif(age>=18, reason=‘已成年’)