pytest -h
命令行输入pytest -h,找到里面两个命令行参数: --lf 和 --ff
- --lf, --last-failed 只从新运行上次运行失败的用例(或若是没有失败的话会所有跑)
- --ff, --failed-first 运行全部测试,但首先运行上次运行失败的测试(这可能会从新测试,从而致使重复的fixture setup/teardown)
pytest --lf
pytest --ff
若是想分布式执行用例,用例设计必须遵循如下原则:
1.用例之间都是独立的,
2.用例a不要去依赖用例b
3.用例执行没前后顺序,
4.随机都能执行每一个用例都能独立运行成功每一个用例都能重复运行,不影响其它用例
这跟就咱们日常多我的工测试同样,用例都是独立的,能够随机分配不一样人员执行,互相不依赖,用例之间也不存在前后顺序。
pytest-xdist
并行测试
多cpu并行执行用例,直接加个-n参数便可,后面num参数就是并行数量,好比num设置为3
> pytest -n 3
测试报告
使用pytest-xdist插件也能生成html报告,完美支持pytest-html插件
> pytest -n 3 --html=report.html --self-contained-html
重复执行用例:
使用--count命令行选项指定要运行测试用例和测试次数
py.test --count=10 test_file.py
pytest baidu/test_1_baidu.py -s --count=5
会第一个用例运行5次 而后运行第二个用例5次 若是但愿 第一个用例 第二个用例这样按顺序重复5次 要用到--repeat-scope
pytest tearr_function.py -s --count=5 --repeat-scope=session
若是要在代码中标记要重复屡次的用例 可使用
@pytest.mark.repeat(count)
这样执行用例时候,就不用带上--count参数,只针对test_02重复执行5次
pytest tearr_function.py -s
果您正在尝试诊断间歇性故障,那么一遍又一遍地运行相同的测试直到失败是有用的。您能够将pytest的-x选项与pytest-repeat结合使用,以强制测试运行器在第一次失败时中止。例如:> py.test --count=1000 -x test_file.py这将尝试运行test_file.py 1000次,但一旦发生故障就会中止