pytest 测试用例的运行方式
1、主函数模式:
a. 运行所有:pytest.main()
b. 运行指定模块:pytest.main(['-vs', 'test_login.py'])
c. 运行指定目录:pytest.main(['-vs', './testcase'])
d. 通过nodeid 指定用例运行:nodeid 由模块名,分隔符,类名,方法名,函数名组成
pytest.main(['-vs', './testcase/test_login.py::test_01_func'])
pytest.mian(['-vs', './testcase/test_login.py::TestLogin::test_01_func'])
2、命令行模式:
1)运行所有:pytest
2)指定模块:pytest -vs test_login.py
3)指定目录:pytest -vs ./testcase
4)指定用例执行:pytest -vs ./testcase/test_login.py::test_01_func
一些基本常用指令:
-v:显示运行用例的更详细信息
-s:输出调试信息,包括 print() 打印信息
-x:表示只要有一个用例的报错,那么测试停止
-maxfail=2:出现两个用例失败则停止运行用例
-rerunfail num:失败用例重跑
-k:根据测试用例的部分字符串指定测试用例,如:pytest -vs ./testcase -k "ao"
-html ./report/report.html:生成html 的测试报告
-n:支持多线程或者分布式运行测试用例,如:pytest -vs ./testcase/test_login.py -n 2
pytest 执行用例的顺序是默认从上到下,改变执行用例的顺序使用 mark 标记,如:@pytest.mark.run(order=3)
pytest 分组执行用例(冒烟,分模块执行,分接口和web执行)
smoke:冒烟用例,分布在各个模块里面
执行指令:pytest -m "smoke"
pytest -m "smoke or usemanage or productmanage"
pytest 跳过测试用例
1)无条件跳过:@pytest.mark.skip(reason="测试")
2)有条件跳过:@pytest.mark.skipif(age>18, reason='已成年')