pytest重复执行,pytest案例执行出错重复执行
Pytest重复运行所有或指定的测试用例(pytest-repeat插件)_技术博客of _mb62abf3afb54fb _博客
前言:我们在做测试的时候经常会遇到网络抖动,导致测试用例执行失败,重新执行后,测试用例再次成功执行。有时我们会遇到不稳定的功能和偶尔的bug,我们经常需要重复运行用例来重现问题。Pytest-repeat插件可以实现重复运行测试用例的功能。
Test-repeat安装pip install pytest-repeat用法命令行使用- count参数来指定测试用例运行的次数。
py-count=5 test _ file . py #-count=5表示重复执行5次。示例:
#文件名:测试重复. py
导入pytest
定义测试_01():
打印( \ n测试案例test_01 )
定义测试_02():
打印( \ n测试案例test_02 )
定义测试_03():
打印( \ n测试案例test_03 )
if __name__==__main__ :
Test.main ([-s , test _ repeat.py])命令行输入指令:py test-count=3 test _ repeat . py-s-v,运行结果:
从结果中可以看出,每个测试用例都重复运行了三次。
通过指定- repeat-scope参数来控制重复范围。从上面例子的运行结果可以看出,test_01运行了三次,然后test_02运行了三次,最后test_03运行了三次。
但是有时候我们想按照test_01、test_02、test_03的顺序运行三次。这时,我们需要使用另一个参数:- repeat-scope。
-repeat-scope类似于pytest的fixture的scope参数:-repeat-scope可以设置为:module、class、session、function(默认)。
模块:取整体。py文件为单位,重复执行模块中的用例,然后执行下一个(取。py文件为单位,执行。py一次,然后。又是py);
类:重复运行类中的用例,然后重复执行下一个(运行一次类,然后再运行一次类,以类为单位);
session:重复运行整个session,所有测试用例运行一次,然后所有测试用例再运行一次;
函数(默认):对每个用例重复运行,然后运行下一个用例;
例如,使用-repeat-scope=session重复运行整个会话。命令行输入指令:py test test _ repeat . py-s-v-count=3-repeat-scope=session,运行结果为:
从结果可以看出,执行顺序是:test_01,test_02,test _ 03;然后重复操作3次;
使用decorator @ py test . mark . repeat(count)指定一个用例来重复# file _ name: test _ repeat.py。
导入pytest
定义测试_01():
打印( \ n测试案例test_01 )
@pytest.mark.repeat(3)
定义测试_02():
打印( \ n测试案例test_02 )
定义测试_03():
打印( \ n测试案例test_03 )
if __name__==__main__ :
Test.main ([-s , test _ repeat.py])命令行输入指令:pytest test_repeat.py -s -v,运行结果:
从结果中可以看出,只有decorator @pytest.mark.repeat(3)标记的用例test_02被重复运行了3次。
重复运行测试用例,直到遇到失败的用例并停止运行。通过设置pytest -x和pytest-repeat命令行参数的组合,您可以重复运行测试用例,并在遇到第一个失败的用例之前停止运行。
Pytest _ file.py-x-v-count=20在命令行中输入上述指令后,测试用于重复运行20次,但在重复运行的过程中一旦遇到失败的用例就会停止运行。
期待陌生,拥抱惊喜。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。