testNG實現用例失敗重跑,實測可用

第一步:你需要在你的項目中添加如下兩個類(Retry.java和RetryListener.java)

Retry.java代碼如下:

import org.testng.IRetryAnalyzer;
import org.testng.ITestResult;

public class Retry implements IRetryAnalyzer {
    private int retryCount         = 0;
    private int maxRetryCount     = 2;   // retry a failed test 2 additional times

    @Override
    public boolean retry(ITestResult result) {
        if (retryCount <maxRetryCount) {
            retryCount++;
            return true;
        }
        return false;
    }
}
 

 

RetryListener.java代碼如下:

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 {
    public void transform(ITestAnnotation annotation, Class testClass,
            Constructor testConstructor, Method testMethod) {
        IRetryAnalyzer retry = annotation.getRetryAnalyzer();
        if (retry == null) {
            annotation.setRetryAnalyzer(Retry.class);
        }
    }
}
 

 

第二步:在項目的根目錄下新建一個pom.xml文件,並修改對應的value

pom.xml的內容如下:

<properties>
    <property>
        <name>listener</name>
        <value>Jerrisoft.GroupOne.Basics.RetryListener</value>
    </property>
</properties>

 

第三步:編寫TestCase

在需要執行的用例下加上"retryAnalyzer= TestNGRetry.class"

例如,  

 @Test(retryAnalyzer= TestNGRetry.class)
    public void case1(){
        ccs_dda.Login(driver,"中文");    
        home.FirstMenu(driver, "課程");
        home.switchCourse(driver, "必修課");
        course.View(driver);
    }

 

至此運行該類就可以了!

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章