多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

自动化测试用例失败后重试

更新时间:2022-06-14 09:00:39 作者:多测师 浏览:53

  Pytest框架插件

  使用pytest-rerunfailures插件

  GitHub地址:https://github.com/pytest-dev/pytest-rerunfailures

  环境要求

  Python 3.5,最高 3.8,或者 PyPy3

  pytest 5.0或更高版本

  安装插件

  pip installpytest-rerunfailures

  安装失败或安装缓慢可使用

  pip3 install pytest-rerunfailures -i http://pypi.douban.com/simple/--trusted-host pypi.douban.com

自动化测试用例失败后重试

  运行模式

  命令行参数:--reruns n(重新运行次数),--reruns-delay m(等待运行秒数)

  装饰器参数:reruns=n(重新运行次数),reruns_delay=m(等待运行秒数)

  重新运行所有失败的用例

  要重新运行所有失败的用例,是由--rrtuns命令行参数,并指定运行测试的最大次数

  pytest --reruns 5 -s

  注意!运行失败的fixture或setup_class也将重新执行

  添加重新运行的时间间隔

  要在两次重试之间增加延迟时间,使用 --reruns-delay 命令行选项,指定下次测试重新开始之前等待的秒数

  pytest --reruns 5 --reruns-delay 10 -s

  重新运行指定的测试用例

  要将单个测试用例添加flaky装饰器 @pytest.mark.flaky(reruns=5) ,并在测试失败时自动重新运行,需要指定最大重新运行的次数

  示例代码

  @pytest.mark.flaky(reruns=5)

  def test_example():

  import random

  assert random.choice([True, False])

  # 指定重新运行的时间间隔

  @pytest.mark.flaky(reruns=5, reruns_delay=2)

  def test_example():

  import random

  assert random.choice([True, False])

  注意

  如果指定了用例的重新运行次数,则在命令行添加--reruns对这些用例是不会生效的

  兼容性问题

  不可以和fixture装饰器一起使用:@pytest.fixture()

  该插件与pytest-xdist的 --looponfail 标志不兼容

  该插件与核心--pdb标志不兼容

  UnitTest框架

  使用修改后的HTMLTestRunner测试报告生成库

  GitHub地址:https://github.com/GoverSky/HTMLTestRunner_cn

  使用说明

  # 根据unittest的运行机制,在stopTest 中判断测试结果,如果失败或出错status为1,判断是否需要重试;

  # 在实例化HTMLTestRunner 对象时追加参数,retry,指定重试次数

  # 如果save_last_try 为True ,一个用例仅显示最后一次测试的结果。

  HTMLTestRunner(title="带截图的测试报告", description="小试牛刀",stream=open("sample_test_report.html", "wb"), verbosity=2,retry=2, save_last_try=True)

  # 如果save_last_try 为False,则显示所有重试的结果。

  HTMLTestRunner(title="带截图的测试报告", description="小试牛刀",stream=open("sample_test_report.html", "wb"), verbosity=2,retry=2, save_last_try=False)

  # 注意:在python3 中因为unittest运行机制变动,在使用setUp/tearDown中初始化/退出driver时,会出现用例执行失败没有截图的问题,所以推荐使用样例中setUpClass/tearDownClass的用法。

  以上内容为大家介绍了自动化测试用例失败后重试,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部