如何解决testng执行用例失败自
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决testng执行用例失败自相关的知识,希望对你有一定的参考价值。
一、首先新建Java类实现IRetryAnalyzer接口,代码如下(主要配置自动重跑次数maxRetryCount):
[java] view plain copy
public class OverrideIReTry implements IRetryAnalyzer
public static Logger logger=Logger.getLogger(OverrideIReTry.class);
public int retryCount=0;
private static int maxRetryCount ;
static
//外围文件配置最大运行次数,失败后重跑maxRetryCount+1次
maxRetryCount = 2;//也就是失败后重跑3次
logger.info("maxRunCount=" + (maxRetryCount));
@Override public boolean retry(ITestResult iTestResult)
if(retryCount <= maxRetryCount)String message = "running retry for \'" + iTestResult.getName() + "\' on class " +
this.getClass().getName() + " Retrying " + retryCount + " times";
logger.info(message);
Reporter.setCurrentTestResult(iTestResult);
Reporter.log("RunCount=" + (retryCount + 1));
retryCount++;
return true;
return false;
二、新建Java类实现IAnnotationTransformer接口,代码如下:
[java] view plain copy
package TezitongAll;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import org.testng.IAnnotationTransformer;
import org.testng.IRetryAnalyzer;
import org.testng.annotations.ITestAnnotation;
public class RetryListener implements IAnnotationTransformer
@Override
public void transform(ITestAnnotation annotation, @SuppressWarnings("rawtypes") Class testClass,@SuppressWarnings("rawtypes") Constructor testConstructor, Method testMethod)
IRetryAnalyzer retry = annotation.getRetryAnalyzer();
if (retry == null)
annotation.setRetryAnalyzer(OverrideIReTry.class);
如果你遇到断言失败终止的解决办法有两个:
第一 重写 assert类,重写里面Assert.assertequils 等方法,使用try和catch 抛出异常来使代码不终止
第二 写个assert的监听类,具体怎么写,请google或者百度
testng.xml 执行多个测试用例
1.在工程名字上点击右键,点击【New】-->【File】
2.在弹出的【New File】对话框中的【File name】输入【testng.xml】,点击【Finish】即创建了一个testng的配置文件
3.在testng.xml中做如下编辑:
<suite name="TestSuite"> 自定义的测试集合名称 <test name="test1"> 定义测试名称 <classes> 定义被运行的测试类 <class name="cn.gloryroad.Annotation"/> <class name="cn.gloryroad.FirstTestNGDemo"/> </classes> </test> </suite>
4.测试结果如下:
以上是关于如何解决testng执行用例失败自的主要内容,如果未能解决你的问题,请参考以下文章
TestNG中Appium测试用例的顺序执行导致测试用例失败