pytest用例编写规则:
1、测试文件以 ‘test_’ 开头,以 ‘_test’ 结尾。
2、测试类以 ‘Test’ 开头,并且不能带有 init 方法。
3、测试函数以 ‘test_’ 开头。
4、断言使用基本的assert。
pytest Exit Code清单:
Exit Code 0:所有用例执行完毕,全部通过。
Exit Code 1:所有用例执行完毕,存在Failed的测试用例。
Exit Code 2:用户中断测试执行。
Exit Code 3:测试执行过程中发生了内部错误。
Exit Code 4:pytest命令行使用错误。
Exit Code 5:未采集到可用测试用例文件。
控制测试用例执行规则:
1、在第N个用例失败以后,结束测试执行
第1次失败,就停止测试:pytest -x
出现两个失败就终止测试:pytest --maxfail=2
2、指定测试模块
pytest test_mod.py
3、指定测试目录
pytest testing/
4、通过关键字表达式过滤执行
pytest -k "MyClass and not method"
这条命令会匹配文件名、类名、方法名,匹配表达式的用例
此命令会执行TestMyClass.test_something,不会执行TestMyClass.test_method_simple
5、通过node id指定测试用例
node id由模块文件名、分隔符、类名、方法名、参数构成
运行模块中的指定用例:pytest test_mode.py::test_func
运行模块中的指定方法:pytest test_mode.py::TestClass::test_method
6、通过标记表达式执行
pytest -m slow
这条命令会执行被装饰器@pytest.mark.slow装饰的所有用例
7、通过包执行测试
pytest --pyargs pkg.testing
这条命令会自动导入pkg.testing,并使用该包所在目录执行下面的用例
8、多进程运行case
说明:当case量很多时,运行时间也会变得很长,如果想要缩短脚本运行时长,就可以使用多进程来执行。
安装----pip install -U pytest -xdist
运行模式----pytest test_se.py -n NUM
(NUM填写并发进程数)
9、重试运行case
说明:在做接口测试时,有时会遇到503或短时网络波动,导致case运行失败,而这并非是我们期望的结果,此时可以通过重试运行case的方式来解决。
安装----pytest -rerunfailures:pip install -U pytest -rerunfailures
运行模式----pytest test_se.py --reruns NUM
(NUM填写重试的次数)