pytest失败重跑机制,pytest重试

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: