pytest失败重跑机制,pytest重试
Pytest大保健系列
一.导言
在自动化测试的过程中,我们必须要求失败的用例能够自动重新运行。
pytest中提供了pytest-rerunfailures插件,实现自动重新运行的效果。
1.使用前提Python 3.5,最高3.8,或PyPy3pytest 5.0或更高版本2。兼容性不能与fixture decorator一起使用:@pytest.fixture()插件与pytest-xdist的- looponfail标志不兼容。该插件与core - pdb标志不兼容。3.pip安装pip 3 install pytest-重新运行失败-I http://pypi.douban.com/simple/-trusted-host pypi . douban . com 4 .命令描述支持全局和本地重新运行。
命令行参数(所有用例都有效):-重新运行n(重新运行的次数),-重新运行-延迟m(等待运行的秒数)
装饰参数(对单一用例有效):reruns=n(重新运行的次数),reruns_delay=m(等待运行的秒数)
其次,命令行的全局重新运行如下。所有用例最多失败3次,下次重试前的时间间隔为2秒。
测试-重新运行3-重新运行-延迟2-s例如:
类TestDemo(对象):
def setup_class(自身):
打印(执行setup_class )
def teardown_class(self):
Print (execute teardown_class )
定义测试_案例1(自身):
打印(“执行测试用例1”)
断言1 1==3
定义测试_案例2(自身):
打印(“执行测试用例2”)
断言1 3==6
定义测试_案例3(自身):
打印(“执行测试用例3”)
断言1 3==4查看代码
结果:
第三,装修部分重新跑。如果我们正在测试,我们只想在失败后重新执行一个测试用例。我们做什么呢
可以使用flacky decorator @ pytest . mark . flacky(reruns=,reruns _ delay=)
如下图,修饰后的用例最多可以重新运行两次,每次间隔3秒。
@ pytest . mark . flackly(reruns=2,reruns _ delay=3)例如:
导入pytest
@ pytest . mark . flally(reruns=2,reruns_delay=3)
定义测试用例1():
打印(“执行测试用例1”)
断言1 1==3
def测试_案例2():
打印(“执行测试用例2”)
断言1 3==6
def测试_案例3():
打印(“执行测试用例3”)
断言1 3==4查看代码
结果1: pytest -s
两个结果:pytest-重新运行3-重新运行-延迟2-s
当命令行和装饰器同时出现时,局部大于全局。
参考:
小菠萝
RockChe的博客
转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。