执行方式主要分为两种:
命令行执行
代码方式执行
1、命令行方式
1.在控制台执行 pytest
2.在控制台指定执行范围
a.指定某个模块 pytest test_module.py
b.指定某个目录及其子目录的所有测试文件 pytest testcase
c.指定某个某块的某个方法 pytest test_module::test_function
d.指定执行某模块的某个类中的某个用例 用“::”分割 pytesy test_model.py::test_class::test_method
2、通过python代码执行pytest
1.直接执行pytest.main() 【自动查找当前目录下,以test_开头的文件或者以_test结尾的py文件】
2.设置pytest的执行参数 pytest.main(['--html=./report.html','test_login.py'])【执行test_login.py文件,并生成html格式的报告】
方式2中,执行参数和插件参数,通过[]进行分割,[]内的多个参数通过‘逗号,’进行分割
常用执行参数和插件参数
执行参数
指定测试模块 test_model.py:
指定测试目录 testing/
指定执行某模块的某个类中的某个用例 test_model.py::test_class::test_method
生成html格式的报告 --html=./report.html
第01次失败,就停止测试 -x 或--exitfirst
出现n个失败就终止测试 --maxfail=n
执行被装饰器 @pytest.mark.slow 装饰的所有测试用例 -m slow
注意,-m后面不能带''号(单引号),只能带“”(双引号),不然识别不到
如果要运行多个标识的话,用表达式,如下
pytest -m "slow or faster" 运行有slow标识或 faster标识用例
pytest -m "slow and faster" 运行有slow和faster标识的用例
pytest -m "slow and not faster" 运行有slow和没有faster标识的用例
自动导入包 pkg.testing,并使用该包所在的目录,执行下面的用例 --pyargs pkg.testing
显示print内容 -s
详细结果 -v, --verbose
极简结果显示 -q, --quiet
输出xml文件格式,在与jenkins做集成时使用 --junit-xml=path
将最后的结果保存到本地文件中 --result-log=path
插件参数
多进程跑用例 ,NUM填写并发的进程数 -n NUM
重试运行cases --reruns NUM