pytest是一个使构建简单和可扩展测试变得容易的框架。
命名
文件名必须是test_开头 或_test结尾的.py文件
类名必须是Test开头
测试函数以test_开头;_test结尾不可以(如b_test());
文件夹(包名)名可以随意命名
cmd下执行测试
1.执行当前cmd所在目录下的所有用例 #默认执行文件名为test_*.py或*_test.py的文件
pytest 或py.test 或python -m pytest
2.执行某一个py文件下的用例
pytest test_1.py
pytest -q test_1.py #输出保持简短,只显示结果
pytest -s #显示用例的打印信息
3.按节点运行
运行.py模块里面的某个函数 pyest 脚本名::函数名,如pytest test_a.py::test_1
运行.py模块里面,测试类里面的某个方法 pytest 脚本名::类名::方法名,如pytest b_test.py::Testa::test_2
4.-x 遇到错误时停止测试
pytest -x test_a.py
5.--maxfail=num
当用例错误个数达到指定数量num时,停止测试
6.执行上次失败用例
--lf last-failed (包含failed和error用例)
--ff failed-first
pytest -s --lf
pytest -s --ff (先运行上次失败的,后运行其他通过的用例)
7.重复执行用例(pytest-repeat)
pytest -s --count=5 (当前文件夹下,所有测试用例重复执行5次,一个用例执行5次后,再执行另一个用例5次)
pytest -s --count=3 --repeat-scope=session #所有用例执行1次后,再执行1次,再执行一次
repeat-scope也可以=function(默认),class,module
针对某个测试用例重复多次,可以加装饰器@pytest.mark.repeat(5)
--count是针对无装饰器的重复
重复测试直至失败
pytest --count=n -x test_1.py,尝试运行test-1.pyn次,一旦发生失败,就停止
pycharm执行pytest用例
设置默认测试执行器为pytest
前置setup、后置teardown操作(对整个脚本,全局生效)
函数式(类外):setup_function(), teardown_function()
def setup_function():
print("每个用例开始前都会执行")
.py模块级:setup_module(),teardown_module()
def teardown_module():
print("所有用例结束后,关闭浏览器")
类里或类外,setup(), teardown(),每个方法/函数用例前后执行;
类里: