一、在cmd安装repeat
pytest-repeat是pytest的一个插件,用于重复执行单个用例,或多个测试用例,并指定重复次数,pytest-repeat支持的版本:
- python 2.7,3.4+ 或 PyPy
- py.test 2.8或更高
pip install pytest-repeat
二、安装完后,使用方法如下
方法一:在测试用例直接写:@pytest.mark.repeat(n),n代表执行次数,这种方式的执行顺序是每条用例执行N次之后再往下执行其他用例
如果要在代码中标记要重复多次的测试,可以使用@pytest.mark.repeat(count)装饰器
方法二:使用–count命令行选项指定要运行测试用例和测试次数,pytest --count=10 脚本名.py
三、重复测试直至失败
如果您正在尝试诊断间歇性故障,那么一遍又一遍地运行相同的测试直至失败是有用的。您可以将pytest的-x选项与pytest-repeat结合使用,以强制测试运行器在第一次失败时停止。例如:
pytest --count=1000 -x test_cc.py
这样尝试运行test_cc.py 1000次,但一旦发生故障就会停止
四、其他
1、如果代码里已使用了repeat(count)装饰器,那在命令行执行用例再加上–count=3时,只对无count装饰器的重复3次。
2、repeat-scope
–repeat-scope类似于pytest fixture的scope参数,–repeat-scope也可以设置参数:session,module,class或者function(默认值)
function(默认)范围针对每个用例重复执行,再执行下一个用例
class 以class为用例集合单位,重复执行class里面的用例,在执行下一个
module 以模块为单位,重复执行模块里面的用例,再执行下一个
session 重复整个测试会话,即所有收集的测试执行一次,然后所有这些测试再次执行等等
使用–repeat-scope=session重复执行整个会话用例
1)pytest test_cc.py -s --count=2 --repeat-scope=session
2)pytest test_cc.py -s --count=2 --repeat-scope=class
3)pytest test_cc.py -s --count=2 --repeat-scope=function
4)pytest test_cc.py -s --count=2 --repeat-scope=module
标签:count,repeat,重复,用例,pytest,scope,-- From: https://www.cnblogs.com/Chilam007/p/16911870.html