pytest之执行方法

发布时间 2024-01-09 17:01:38作者: 桃园二狗

一、执行方式
1.主函数
1)全部:pytest.main()
2)指定模块:pytest.main(['-vs','test_01.py'])
3)指定目录:pytest.main(['-vs','./testcase'])
4)指定具体用例的nodeid(模块名+分隔符+类名+方法名):pytest.main(['-vs','./testcase/test_01.py::TestLogin/test_login'])
2.命令行
1)全部:pytest
2)指定模块:pytest -vs test_01.py
3)指定目录:pytest -vs ./testcase
4)指定具体用例的nodeid(模块名+分隔符+类名+方法名):pytest -vs ./testcase/test_01.py::TestLogin/test_login
注:(参数详解)
1)-s 表示输出调试信息,包括打印信息
2)-v 显示更详细的信息
3)-n 支持多线程或者分布式运行测试用例
4)-x 表示只要一个用例报错,就终止测试运行
5)--maxfail=Num 出现Num个失败的用例就终止测试运行
6)--reruns Num 失败的用例重新执行Num次
二、执行顺序
1.顺序执行
1)pytest的用例执行顺序默认是自上而下的
2)在用例前加装饰器@pytest.mark.run(order=1)可以改变用例的执行顺序,order为序号值
3)在用例前加装饰器@pytest.mark.skip(reason='xx')可以无条件跳过该用例的执行
4)在用例前加装饰器@pytest.mark.skipif(表达式, reason='xx')可以有条件跳过该用例的执行,表达式成立时会跳过
2.分布式执行
1)全局配置中配置用例标签(见“三、全局配置”),如
markers =
smoke:冒烟用例
interface:接口用例
return:回归用例
2)在用例前加装饰器@pytest.mark.smoke/interface/return 来为用例打上分组标签
3)执行时可以通过pytest -vs -m "smoke and return"来分别执行对应标签的用例
三、全局配置
1.pytest.ini
1)一般存放于项目的根目录
2)编码格式为ANSI(可用编辑器软件修改)
3)所有的执行方式都会读取此配置