test失败自动执行大大提高测试结果的准确性,

1、修改testNG源码实现test失败自动执行,

首先获取testng的源码,

获取源代码,构建过程:
$ git clone git://github.com/cbeust/testng.git

然后修改src/main/java/org.testng/SuiteRunner.java文件,

private void runTest(TestRunner tr) {

      int reRunTimes = 2;//失败执行的次数
tr.run();
while ((reRunTimes !=0) && (tr.getFailedTests().size() !=0)){//判断test是否成功和运行次数
suiteResults.put(tr.getName(),sr);
suiteResults.remove(tr.getName()); tr.run(); reRunTimes--;
} ISuiteResult sr = new SuiteResult(xmlSuite,tr);
suiteResults.put(tr.getName(),sr);
}

最后将修改后的源码进行打包;

$ cd testng
$ ./build-with-gradle

打包完成后,可以在build/libs中找打testNG的jar;

测试过程中使用修改后的jar,就可以实现test运行失败后重新运行,直到三次失败后不在运行,同时报告中出现test的三次运行结果。

testNG实现test失败后重复执行,的更多相关文章

  1. Jmeter中控制某一段脚本失败后重复执行,并在每个HTTP Request名字中加上循环次数

    ================================================== 1.While Controller之前有一个BeanShell Sampler,用于Init N ...

  2. Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh

    Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh前,要先清除之前的crs配置信息 # /u01/app/11.2.0/grid/crs/install/rootcr ...

  3. TestNG入门教程-12-Java代码执行testng.xml和失败后重跑

    前面我们都在IDEA上右键testng.xml文件来运行testng用例,这个在编写测试用例过程是 可以这么做,但是,如果测试用例写完了,也是这么做吗?有没有什么方法,例如自动化去实现.测试脚本维护后 ...

  4. yum update过程中失败后再次执行出现“xxxx is a duplicate with xxxx”问题

    问题现象: 解决办法: 利用yum-uitls中的工具package-cleanup指令,使用方法见下图,具体可通过man package-cleanup查询 列出重复的rpm包        pac ...

  5. Android 按钮长按下去重复执行某个动作,放开后停止执行动作

    Android开发中,常遇到一种需求,即按钮长按下去重复执行某个动作,放开后停止执行动作.网上找了许多代码,都没有适合的,于是自己动手写了一个. 基本思路是:首先设置一个标识变量,用于标识是否处于按下 ...

  6. Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

    应用场景 之前我们已经通过<Spring Cloud Stream消费失败后的处理策略(一):自动重试>一文介绍了Spring Cloud Stream默认的消息重试功能.本文将介绍Rab ...

  7. testng优化:失败重跑,extentReport+appium用例失败截图,测试报告发邮件

    生成的单html方便jenkins集成发邮件,= = 构建失败发邮件 参考:https://blog.csdn.net/galen2016/article/details/77975965 步骤: 1 ...

  8. flock防止crontab脚本周期内未执行完重复执行(转)

    如果某脚本要运行30分钟,可以在Crontab里把脚本间隔设为至少一小时来避免冲突.而比较糟的情况是可能该脚本在执行周期内没有完成,接着第二个脚本又开始运行了.如何确保只有一个脚本实例运行呢?一个好用 ...

  9. ajax请求执行完成后再执行其他操作(jQuery.page.js插件使用为例)

    就我们做知,ajax强大之处在于它的异步请求,但是有时候我们需要ajax执行彻底完成之后再执行其他函数或操作 这个时候往往我们用到ajax的回调函数,但是假如你不想或者不能把接下来的操作写在回调函数中 ...

随机推荐

  1. ServerSocketChannel

    Java NIO 中的 ServerSocketChannel 是一个可以监听新进来的 TCP 连接的通道, 就像标准 IO 中的 ServerSocket 一样.ServerSocketChanne ...

  2. Memcached源码分析之assoc.c

    #include "memcached.h" #include <sys/stat.h> #include <sys/socket.h> #include ...

  3. jsp发布后应用根目录

    1.发布到tomcat后获取应用的根目录 ServletContext s1=this.getServletContext(); String temp=s1.getRealPath("/& ...

  4. IOS中单例NSUserDefaults的使用(转)

    一.了解NSUserDefaults以及它可以直接存储的类型 http://my.oschina.net/u/1245365/blog/294449 NSUserDefaults是一个单例,在整个程序 ...

  5. C语言-switch语句

    switch (表达式的值) { case 1: 语句1 break; case 2: 语句2 break; case 3: 语句3 break; case 4: 语句4 break; ...... ...

  6. 公众号第三方平台开发-aes解密失败

    公众号第三方平台开发-aes解密失败 问题:本地启动项目,配置域名,测试微信公众号,系统正常运行:将项目部署到测试环境执行同样的操作,系统报错,错误异常:aes解密失败..... 调试--寻找问题-- ...

  7. Python3基础 用while 循环求解 一个整数的阶乘

    镇场诗: 诚听如来语,顿舍世间名与利.愿做地藏徒,广演是经阎浮提. 愿尽吾所学,成就一良心博客.愿诸后来人,重现智慧清净体.-------------------------------------- ...

  8. 1.3. 创建 Grocery Dude 项目(Core Data 应用程序实践指南)

    该程序功能如下: 分类显示家里各个位置的东西,以此提示该购买哪些生活用品 在超市购买时,告诉某个货品摆在哪条过道旁的货架上 将待买物品按过道编组,这样每个过道只需走一遍,就可以拿完所需货品 通过iCl ...

  9. codeforces 755D. PolandBall and Polygon

    D. PolandBall and Polygon time limit per test 4 seconds memory limit per test 256 megabytes input st ...

  10. 安卓版php服务器的mysql数据库增删改查简单案例

    界面: index.php文件: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...