pytest重复执行用例

一、在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

 

posted @ 2022-11-21 16:47  一加一  阅读(1384)  评论(0编辑  收藏  举报