pytest 插件,
pytest重新运行插件的测试用例失败(py test-重新运行失败)_ MB 62 af F3 AFB 54 FB _ 51 CTO博客的技术博客
环境:pytest-rer fail lures只有在同时满足前提条件的情况下才能使用。
python的版本不能太低;
pytest 5.0以上;
背景:通常在做接口测试的时候,经常会遇到网络抖动或者环境问题,导致测试用例失败,而这并不是我们想要的结果;
如果我们想要重新运行失败的测试用例,这需要通过插件pytest-rer failures来实现。
安装插件pytest-rerun failures spip安装pytest-rerun failures 执行命令重新执行失败的测试用例:使用-rerun命令行参数选项,并指定运行测试的最大次数:py test test _ add . py-reruns num # num表示重试次数[注意]当重复运行失败的测试用例时,相应的fixture或setup函数也会重新执行(例如,范围参数为method的fixture前置函数)。
示例:
代码如下:
#文件名:test_add.py
导入pytest
定义测试_添加01():
打印(- test_add01 )
断言1
定义测试_添加02():
打印(- test_add02 )
断言0
定义测试_添加03():
打印(- test_add03 )
断言1
定义测试_添加04():
打印(- test_add04 )
断言1
if __name__==__main__ :
Py.main ([-s , test _ add.py])执行命令:pytest。/py test _ study/test _ add . py-reruns 2-s(num=2表示失败的测试用例重试两次,上面的代码中只有test_add02()方法会失败)
注意:pytest支持多种操作模式下的叠加执行:
比如同时运行四个进程,失败后运行两次。pytest命令行运行:pytest -n 4 -reruns 2。
设置添加重新执行的延迟时间,执行失败的测试用例。要增加两次重试之间的延迟时间,请使用- reruns-delay命令行选项来指定下一次测试再次开始之前等待的秒数:
py-重新运行5-重新运行-延迟10 重新运行指定的测试用例:测试用例失败重新运行的装饰器用法。添加flackly decorator @ pytest . mark . flackly(重新运行=5)并指定最大重新运行次数。
示例代码如下:
#-*-编码:utf-8 -*-
随机导入
导入pytest
@ pytest . mark . flackly(重播次数=5次)
def test_retry1():
n=random.randint(0,9)
print(f \ n输出随机数:{n} )
断言n==2
@ pytest . mark . flackly(重播次数=5次)
def test_retry2():
Assertrandom.choice ([true,false,false])运行结果:[注意]测试结果是测试用例最后一次重新执行的最终结果,即测试用例的执行被判断为失败或通过。
第一种测试方法:
第二种测试方法:
为单个测试用例设置重新运行等待延迟时间的实例代码:
@ pytest . mark . flally(reruns=5,reruns_delay=2)
def test_retry1():
n=random.randint(0,9)
print(f \ n输出随机数:{n} )
断言n==2运行结果:
[注意]
1.如果测试用例的重新运行次数是通过使用decorator来指定的,那么在命令行参数中添加- reruns将不会对这些测试用例产生影响。
2.兼容性问题:
不能和fixture decorator一起使用:@pytest.fixture()这个插件和pytest-xdist的- looponfail logo不兼容。此插件与core -pdb徽标不兼容。期待陌生,拥抱惊喜。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。