网站首页 > 开源技术 正文
基于注解实现简单的失败重试
重写IRetryAnalyzer方法
// 日志
public static Logger logger = Logger.getLogger(OverrideIReTry.class);
//初始化重试次数
public int retryCount = 0;
//最大重试次数
private static int MaxRetryCount;
static {
// 失败后次数+1 等于重试4次~
MaxRetryCount = 10;
logger.info("重试次数=" + MaxRetryCount);
}
/*
*
* @param iTestResult 测试结果
* @return
*/
@Override
public boolean retry(ITestResult iTestResult) {
if (retryCount <= MaxRetryCount) {
String message = "running retry for " + iTestResult.getName() + "' on class " +
this.getClass().getName() + " Retrying " + retryCount + " times";
String msg = "执行用例:" + iTestResult.getName() + "第" + retryCount + "次运行失败";
System.out.println(msg);
logger.info(msg);
Reporter.log("RunCount=" + (retryCount + 1));
retryCount++;
return true;
}
return false;
}
}
测试类
在test方法中注解 @Test(retryAnalyzer = OverrideIReTry.class)
如果想修改重试的次数可以在实现类中修改
进阶版-动态修改实现重试机制
因为上图这样的方式,如果每个用例都要重试的话,都必须添加上一条注解,若要动态修改我们用例的注解该怎么办呢?testng给出的解决方案是:实现IAnnotationTransformer,并重写方法transform方法
重现监听方法,并基于上图的OverrideIReTry方法,set RetryAnalyzer重试器
public class RetryListener implements IAnnotationTransformer {
@Override
public void transform(ITestAnnotation iTestAnnotation, Class aClass,
Constructor constructor, Method method) {
iTestAnnotation.setRetryAnalyzer(OverrideIReTry.class);
}
}
配置xml文件
执行xml文件测试
猜你喜欢
- 2024-10-05 TestNG7.3.0版本,运行时DTD不安全报错问题
- 2024-10-05 测试开发 | 使用Extent report美化单元测试框架TestNG的报告
- 2024-10-05 Jenkins + TestNG 实现自助式自动化测试平台
- 2024-10-05 干货!详解自动化测试用例设计与管理的通用策略(基于TestNg)
- 2024-10-05 Allure+TestNG打造完美的自动化测试报告
- 2024-10-05 Java老矣,Java正年轻!一文了解Java接口自动化测试框架TestNg
- 2024-10-05 十分钟上手TestNg(十分钟上手辩论)
- 2024-10-05 资深测试必备技能!TestNG自动化测试框架实战详解
- 2024-10-05 利器 | TestNG 与 Junit 对比,测试框架如何选择?
- 2024-06-27 HttpClient +Testng进行接口测试入门
你 发表评论:
欢迎- 05-15.net core集成vue
- 05-15Vue开发环境搭建
- 05-15创建Electron工程
- 05-15个人博客搭建保姆级教程3——hexo
- 05-15(实用派)Express之创建并配置运行vue项目
- 05-15package.json 与 package-lock.json 的关系
- 05-15deepin-linux的vue学习(二)git克隆开源vue项目和本地运行
- 05-15手把手教你搭建免费个人博客网站
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)