2019独角兽企业重金招聘Python工程师标准>>>

自动化测试的时候,经常会遇到这样的问题:大部分时候执行测试用例都能pass,只是偶然出现false,而出现false的时候是因为外部因素引起,比如WiFi不稳定、使用了第三方插件不稳定等,这些情况下往往重新再执行用例就可以pass。可能遇到这种用例false的情况,我们首先想到的会是去剔除失败的用例,但是这样做不是最明智的做法,当用例数量多的时候,很难去判定哪些用例容易由于第三方因素false。最好的办法是----让出错的用例重跑。

那么如何做到让出错的用例重跑呢?如果你用的是nose或者pytest框架编写用例,就可以使用flaky插件。该插件能够在那些不稳定的case失败之后,重复执行这些case。

1.flaky插件安装

pip install flaky

2.测试脚本中的使用

2.1 将不稳定的case标记为flaky

from flaky import flaky@flaky
def test_func(self):self.assertEqual(1+3,5)

备注:在case方法上方加上@flaky,用例执行失败的时候会默认重新执行一次。

from flaky import flaky@flaky(max_runs=3, min_passes=2)
def test_func(self):self.assertEqual(1+3,5)

备注:flaky接收两个参数:max_runs,min_passes。max_runs表示测试失败之后,会重复执行这个测试的次数。min_passes表示执行max_runs这么多次中,成功的次数>=min_passes的话,则认为这个case就pass了。如上用例表示:执行3次用例中,如果pass次数>=2,则pass.

2.2 将不稳定的测试类标为flaky

from flaky import flaky
@flaky
class testAdd(unittest.TestCase):   def test_func(self):self.assertEqual(1+3,5)@flaky(max_run=3)def test_double(self):self.assertEqual(2+6,8)

备注:以上testAdd类下的所有方法都会应用到flaky。test_func失败之后会默认再执行一次。test_double失败之后会重新再执行3次。

3.命令行中使用flaky

3.1 强制所有的测试使用flaky

py.test --force-flaky 

3.2设置重复执行的次数

py.test --force-flaky --max-runs=3 --min-passes=2  

3.3不输出flaky执行的测试报告

py.test --no-flaky-report 

备注:正常情况下,测试完成后将输出flaky的测试报告,该报告中显示了有哪些测试重复执行了以及重复执行的情况。如果不想在测试完成后输出flaky报告,可以在执行测试的时候加上--no-flaky-report参数。

转载于:https://my.oschina.net/u/873595/blog/794820

测试用例出错重跑--flaky插件相关推荐

  1. pytest_失败用例的重跑机制@pytest.mark.flaky()

    执行失败了的用例可以按照一定频率去跑多次,频率+次数. reruns=2 重跑次数 reruns_delay=2 频率 import pytest import os import allure@py ...

  2. 调度系统批量重跑任务的思考

    在调度系统中总会遇到这种场景,上游任务出现数据问题,数据缺失,数据重复.这些问题出现的原因有很多,比如上游业务问题,升级某一调度组件测试覆盖不全面,代码bug等. 出现问题的原因,问题的修复,系统针对 ...

  3. 【Katalon Studio】失败用例重跑

    文章目录 1开启retry 1.1 命令模式启动-python 1.2 界面开启 2 创建监听 1开启retry 1.1 命令模式启动-python python中运行命令,retry次数为2 重点看 ...

  4. TestNG测试框架之失败测试重跑

    前言 在案例执行过程中,往往需要对失败的案例进行重跑,TestNG亦提供相应的实现方案. 示例 当套件中的测试执行失败时,TestNG都会创建一个名为testng-failed.xml的文件,该XML ...

  5. testng重跑和框架亮点

    testng重跑设置: tr.setAttribute("RETRY", new Integer(count)); //次数 第一种重跑方式:实现retry listener Te ...

  6. 如何解决testng执行用例失败自动重跑问题

    如何解决testng执行用例失败自动重跑问题 参考文章: (1)如何解决testng执行用例失败自动重跑问题 (2)https://www.cnblogs.com/cheese320/p/847864 ...

  7. testNG-失败用例重跑机制

    下面简单介绍下testNG的失败重跑的实现方法: 1.首先编写一个类,实现IRetryAnalyzer类,重写其中的retry方法. public class TestNGRetry implemen ...

  8. G1D33-BTG复现重跑实验

    一.复现BTG 复现很简单,所以就记录一些乱七八糟的叭 (一)传参 传是否使用cuda的参数的时候,发现传True会报错,后来查到链接 https://stackoverflow.com/questi ...

  9. TestNG监听器实现失败自动截图、重跑、自定义html结果文件功能

    本文转载自孔庆云kevin<TestNG监听器实现失败自动截图.重跑.自定义html结果文件功能> 使用Testng框架搭建自动测试框架,经常会需要增加失败自动截图,以及失败重跑功能,下面 ...

最新文章

  1. 深入浅出ShellExecute
  2. 常用英文搜索引擎及特点
  3. list类型的应用场景 —— Redis实战经验
  4. ADO.NET复习总结(4)--访问SqlServer的类
  5. Spring 声明式事务在业务开发中容易碰到的坑总结
  6. python函数命名空间_python (函数命名空间和作用域)
  7. 01-MySQL安装、配置和使用
  8. Javascript浏览器事件(上)
  9. Tableau Desktop 2021中文免费版下载(包含其它历史版本)
  10. python代码申请软件著作权_python自动化生成软件著作权的源代码
  11. 手机麦克风结构原理图_一文看懂咪头的工作原理及结构(驻极体话筒)
  12. 易优cms设置完伪静态之后,产品板块出现404
  13. iOS 修改系统定位(非越狱)
  14. 北京大学计算机学院复试名单2021,北京大学2021拟录取推免研究生毕业院校统计,多位来自非211高校...
  15. 计算机的自带拍视频教程,电脑如何录制视频并剪辑
  16. iPhone铃声制作软件iRingg for Mac
  17. 《用图表说话》读后感
  18. 斯伦贝谢宣布用债券交换斯伦贝谢控股公司的三种优先票据
  19. 全国高精度数字高程模型 精度为5m的dem
  20. Android SDK Windows 安装及环境配置教程

热门文章

  1. Oracle游标设置
  2. php漂亮的登录界面,extjs漂亮简洁的登录界面
  3. GEE1:由GEE生成逐月MODIS的NDVI影像
  4. 第38天学习打卡(网络编程 )
  5. 如何保养汽车真皮座椅座套
  6. js 实时显示不同时区时间
  7. 想升级Mac新版本,无奈内存空间不够该怎么办?
  8. Opencv图像几何变换
  9. Win10 多cpu分配技巧
  10. excel禁用加载项_通过禁用不必要的加载项使Outlook更快