• Pytest 失败重运行


    需安装第三方插件:pytest-rerun、pytest-rerunfailures

    失败重试和失败重运行的区别

    失败重试:【--reruns=1】,用例执行失败后,会立即开始重试一次此用例,再执行下一条用例

    失败重运行:【--if】 ,用例集或用例执行完成之后,再次pytest.main(),会收集失败的用例,再次运行;如果没有失败的用例,会执行全部

      一个run文件,可以同时写多条pytest.main(),执行pytest的命令

    if __name__=="__main__":
        pytest.main(['-s','test_firstFile.py'])   -- 第一次运行,如果有失败的用例/第一次没有失败的用例
        pytest.main(['-s','--lf','test_firstFile.py']) – 收集到第一次失败的用例,进行执行/则运行全部

    需注意,如果用例数较多,第一次运行全部成功的情况,第二个pytest.main(),是会收集所有的用例再执行一遍。

    建议使用失败重试次数(--reruns=1),失败一次后,立刻执行一次,也可减少用例的失败率

     

    失败重试方式

    1、可在命令行 –reruns=1 reruns_delay=2 失败后重运行1次,延时2s

    2、使用装饰器进行失败重运行

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

     

    命令行参数和装饰器同时存在

    说明:如果用例装饰器方式设置了重新运行次数,则在命令行添加–reruns对这些用例不会生效;装饰器的优先级>命令行

    • 这个插件不可以和 class, module, package 级别的fixture装饰器一起使用,不能与@pyest.mark.usefixtures()一起使用
    • 这个插件与 pytest-xdist 的 --looponfail 标志不兼容
    • 这个插件与核心 --pdb 标志不兼容

    总结

    pytest-rerunfailures插件可以通过命令行参数 --reruns 2 --reruns-delay 5 进行使用,这个对于所有用例生效

    pytest-rerunfailures插件使用装饰器装饰在用例上面,只对装饰的用例有效

    当时同时使用装饰器和命令行参数时,装饰器参数优先级高

    注意插件的兼容性

    原文链接:https://blog.csdn.net/u010454117/article/details/118584670

  • 相关阅读:
    k8s二进制安装
    jenkins
    Deploy Apollo on Kubernetes
    Apollo配置中心搭建常见报错
    Apollo配置中心搭建过程
    使用CephRBD为Kubernetes提供StorageClass
    Ceph基础命令总结
    Ceph分布式存储系统搭建
    zabbix入门之配置邮件告警
    zabbix入门之定义触发器
  • 原文地址:https://www.cnblogs.com/cuitang/p/16313180.html
Copyright © 2020-2023  润新知