• testNG-失败用例重跑方法探究



    实现IRetryAnalyzer类,重写其中的retry方法
    public
    class TestNGRetry implements IRetryAnalyzer { private int retryCount = 1; private static final int maxRetryCount = 3; @Override public boolean retry(ITestResult result) { if (retryCount<=maxRetryCount){ retryCount++; return true; } return false; } public void reSetCount(){ retryCount=1; } }
    在测试方法上面
    @Test(retryAnalyzer= TestNGRetry.class)

    就可以执行了。

    可以写个监听器,放到xml配置里面,这样所有的测试用例都能用这个重试方法了

    public class RetryListener implements IAnnotationTransformer {
          
    
            @Override
            public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor,
                    Method testMethod) {
                IRetryAnalyzer retryAnalyzer = annotation.getRetryAnalyzer();//获取到retryAnalyzer的注解
                if (retryAnalyzer == null){ annotation.setRetryAnalyzer(TestNGRetry.class);
                } 
                }
                
             }
    配置文件
    <?xml version="1.0" encoding="UTF-8"?>
    <suite name="Suite" parallel="false" thread-count="2">
     <listeners>
            <listener
                class-name="chongshi.tesng.TestRunnerListener" />
            <listener class-name="chongshi.tesng.RetryListener"/>
        </listeners>
      <test name="Test">
        <classes>
          <class name="chongshi.tesng.New"/>
        </classes>
      </test> <!-- Test -->
    </suite> <!-- Suite -->

    测试函数

     这样就可以完成了所有测试用例的重试工作。

    可以加到我们的测试中使用了。

  • 相关阅读:
    springCloud和docker笔记(1)——微服务架构概述
    gradle配置远程仓库(以及使用本地maven仓库)
    linux以及git和maven常用命令
    junit使用小结
    aop中获取方法的注解
    mysql使用总结
    mac的终端窗口的工作组的使用
    线性表试题中的操作代码
    echart与Accelerometer综合
    php与MySQL与echart综合使用
  • 原文地址:https://www.cnblogs.com/leiziv5/p/10222946.html
Copyright © 2020-2023  润新知