Pytest 运行方式共有三种:
1、主函数模式
-
运行所有 pytest.main()
-
指定模块 pytest.main('[-vs],','./testcase/test_day1.py') 只运行testcase 下的test_day1.py 文件
-
指定目录 pytest.main('[-vs]'),'./testcase') 只运行testcase 目录下的文件
-
通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
-
执行某个类:
pytest 文件名.py::类名 例如: #pytest.main(["-vs"],'./interface_testcase/test_day3.py::TestLogin')
-
执行某个方法:
pytest 文件名.py::类名::方法名 例如:
#pytest.main(["-vs"],'./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1') -
执行模块中某个方法:
pytest 文件名.py::方法名 例如:#pytest.main(["-vs"],'./interface_testcase/test_day3.py::test_demo11')
2、命令行模式
(1)运行所有:pytest
(2)指定模块 pytest -vs ./testcase/test_day1.py
(3)指定目录 pytest -vs ./testcase
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
pytest -vs ./interface_testcase/test_day3.py::test_demo11
pytest -vs ./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1
参数详解:
-s:表示输出调试信息,包括print打印的信息
-v显示更详细的信息
-vs一起使用
-n支持多线程或者分布式运行测试用例
#如 #pytest.main(['-vs','./testcase/test_day1.py','-n=2'])
# pytest -vs ./testcase/test_day1.py -n 2
#reruns==number 表示失败用例重跑
#pytest -vs ./testcase/test_day2.py --reruns 2
#pytest.main(['–vs','./testcase/test_day2.py',‘reruns=2']) #失败得的用例重跑两次
#-x表示只要一个用例报错,那么测试停止运行
#–maxfail=2 出现两个失败用例停止
#-k 根据测试用例的部分字符串指定测试用例
pytest -vs test_day2 -k “yang”
3、通过读取pytest ini配置文件运行 (最主要运用的方式)
#pytest.ini是pytest单元测试框架中的核心配置文件
(1)位置:一般是放在项目的根目录
(2)编码:必须是ANSI,可以使用notepad++来修改编码格式
(3)作用:改变pytest的默认行为
(4)运行的规则:不管是主函数的模式运行该,命令行模式,都会区读取这个配置文件
常用参数
addopts 命令行的参数,用空格分隔
testpaths 测试用例的路径
markers 标记参数,赋值方式为 key:value
python_files 模块的命名规则 xx.py
python_classes 类名的命名规则 Xxx
python_functions 方法的命名规则 **
required_plugins 插件的使用
xfail_strict = true 禁用xpass
addopts: OPTS 命令行参数集
-s:表示输出调试信息,包括 print打印的信息-
v:显示更详细的信息
-
vs:这两个参数一起用
-
n :支持多线程或者分布式运行测试用例
如:pytest
-
vs .
/
testcase
/
test_login.py
-
n
2
-
-
html : 测试报告位置
-
-
reruns : 失败重跑
-
p no:warnings : 取消警告
-
-
ff : 先执行上次失败的用例
-
-
lf : 只执行上次失败的用例
-
x : 遇到测试用例fail,就结束测试
-
-
maxfail
=
num:遇到num条测试用例fail, 就结束测试
-
k :根据测试用例的部分字符串指定测试用例
如:pytest
-
vs .
/
testcase
-
k “ao”