zoukankan      html  css  js  c++  java
  • Pytest学习笔记9失败重跑

    前言

    在进行自动化测试的过程中,我们一定会有这样的需求:希望失败的用例可以自动重跑

    在pytest中,提供了pytest-rerunfailures插件可以实现自动重跑的效果

    插件安装

    pip命令安装

    pip install pytest-rerunfailures
    

    使用实例

    重新运行所有失败的用例

    如果需要把所有失败的用例都重新运行,使用 --reruns 命令,并且制定要运行的最大次数

    举个:

    class TestDemo(object):
        def setup_class(self):
            print("执行setup_class")
    
        def teardown_class(self):
            print("执行teardown_class")
    
        def test_case1(self):
            print("执行测试用例1")
            assert 1 + 1 == 3
    
        def test_case2(self):
            print("执行测试用例2")
            assert 1 + 3 == 6
    
        def test_case3(self):
            print("执行测试用例3")
            assert 1 + 3 == 4
    

    使用命令pytest --reruns 2 -s 执行,结果如下

    image-20210703221946118

    可以看到,case1和case2被重新执行了2次

    如果希望在每次重新执行之间加上间隔时间,可以使用 --reruns-delay 命令行选项,指定下次测试重新开始之前等待的秒数

    pytest --reruns 2 --reruns-delay 5 -s,代表自动重跑2次,每次间隔5s

    重新运行指定的用例

    如果我们在测试时,只希望在某一条测试用例失败后重新执行该如何处理呢

    可以使用flaky装饰器 @pytest.mark.flaky(reruns=, reruns_delay=)

    参数说明

    • reruns 重跑次数
    • reruns_delay 重新运行的等待时间

    举个

    import pytest
    
    
    @pytest.mark.flaky(reruns=2, reruns_delay=3)
    def test_case1():
        print("执行测试用例1")
        assert 1 + 1 == 3
    
    
    def test_case2():
        print("执行测试用例2")
        assert 1 + 3 == 6
    
    
    def test_case3():
        print("执行测试用例3")
        assert 1 + 3 == 4
    

    运行结果如下:

    image-20210703223905568

  • 相关阅读:
    css font-family(字体样式)
    360浏览器兼容模式,页面不能正常渲染
    SVN 如何更换IP地址
    Update 出现在的问题
    安装node-sass
    vue 里面输出带标签的html
    css 内容超出宽度自动换行
    js 判断各种数据类型
    Java_面向对象三大特征
    Java_基础(二)
  • 原文地址:https://www.cnblogs.com/crdym/p/14967837.html
Copyright © 2011-2022 走看看