Selenium [求助] ExtentReports 报告中如何踢除失败重跑的用例数

xuyaovScorpion · 2018年03月12日 · 最后由 margaret2022 回复于 2022年07月01日 · 1275 次阅读

我用的是 testng+ExtentReports 组合生成的报告 可是踢除并不管用 testng 用的 6.10 版本
实现的是 ITestListener 接口的 onFinish 方法,最后重跑的结果全是 skip 状态

代码如下:
1、失败重跑

public class TestRetryAnalyzer implements IRetryAnalyzer{   
    //当前数
    private int retryCount = 1; 
    //最多重跑次数
    private int maxRetryTimes = Config.retryTimes;  
    @Override
    public boolean retry(ITestResult result) {
        if(retryCount <= maxRetryTimes){            
            result.setAttribute("RETRY", retryCount);
            Log.info("用例:"+ result.getName()+" 正在进行第"+retryCount+"次失败重跑");
            Reporter.log("用例:"+ result.getName()+" 正在进行第"+retryCount+"次失败重跑");
            retryCount++;
            return true;
        }
        return false;
    }
}

2、添加失败重跑和踢除:

//剔除失败重跑的用例数
@Override
public void onFinish(ITestContext context) {
    Iterator<ITestResult> listOfFailedTests = context.getFailedTests().getAllResults().iterator();
    while(listOfFailedTests.hasNext()){
        ITestResult failedTest = listOfFailedTests.next();
        ITestNGMethod method = failedTest.getMethod();
         if(context.getFailedTests().getResults(method).size()>1){
             listOfFailedTests.remove();
         }
    }
    extent.flush();     
}

//给所有用例添加失败重跑机制
@Override
public synchronized void onStart(ITestContext context) {
    Log.info("正在为所有测试方法添加失败重跑机制");
    for(ITestNGMethod method: context.getAllTestMethods()){
        method.setRetryAnalyzer(new TestRetryAnalyzer());
    }
}

可是报告还是打印重跑的用例,而且状态是跳过状态

踢除没有起作用

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞
1楼 已删除

好的,明天我试试

仅楼主可见

没关系 我在研究一下

请问是是如何解决的呀

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册