亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

TestNG如何通過自定義Listener形式實現用例失敗重試

發布時間:2021-09-17 10:58:18 來源:億速云 閱讀:308 作者:柒染 欄目:web開發

TestNG如何通過自定義Listener形式實現用例失敗重試,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

TestNG如何通過自定義Listener形式實現用例失敗重試

標簽形式實現用例失敗重試

前面的文章講解了可以通過標簽的形式實現用例失敗重試的方法,@Test(retryAnalyzer = MyRetry.class)。

詳情可以參考文章:詳解TestNG中的用例失敗重試和自定義監聽器

但是通過@Test標簽方式仍然存在一定的問題,即該方法只能左右在類或者方法上,當測試類非常多的時候,需要在每一個類前都增加標簽@Test(retryAnalyzer = MyRetry.class)。

有沒有什么全局的方式來搞定這件事兒呢?我們可以通過自定義listener來解決!

自定義Listener形式實現用例失敗重試

我們已經通過標簽實現了用例失敗的重試機制,那么我們就可以寫一個listenser來控制標簽。TestNG中提供了IAnnotationTransformer來讓我們實現這一目的。話不多說,直接上代碼

重試代碼邏輯的代碼實現如下:

import org.testng.IRetryAnalyzer; import org.testng.ITestResult; public class MyRetry implements IRetryAnalyzer{ private int retryCount = 0; private static final int maxRetryCount = 3;//用例失敗重新執行3次 @Override public boolean retry(ITestResult result) { if (retryCount < maxRetryCount) { retryCount++; return true;     } return false; } }

自定義Retry 的listener代碼實現如下:

import java.lang.reflect.Constructor; import java.lang.reflect.Method; import org.testng.IAnnotationTransformer; import org.testng.annotations.ITestAnnotation; public class RetryListener implements IAnnotationTransformer {     @Override     public void transform(ITestAnnotation testannotation, Class testClass,         Constructor testConstructor, Method testMethod)    {         testannotation.setRetryAnalyzer(MyRetry.class);     } }

測試類代碼如下:

import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; public class Case1 { @Test public void f1() {     System.out.println("f11");     assertEquals("a","b");   }   @Test   public void f2() {   System.out.println("f21");   assertEquals("a","a"); } }

設置testng的配置文件,添加自定義的RetryListener

TestNG如何通過自定義Listener形式實現用例失敗重試

運行結果如下,可以看到重試了3次。

TestNG如何通過自定義Listener形式實現用例失敗重試

備注:如果在一個case中,方法中有標簽重試機制代碼如下(設置重試為1),那該如何處理呢?

@Test(retryAnalyzer = MyRetry2.class) public void f1() {     System.out.println("f11");     assertEquals("a","b");   }

我們運行代碼會發現以testng的配置文件中的添加自定義RetryListener中使用的MyRetry.class為主。

關于TestNG如何通過自定義Listener形式實現用例失敗重試問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

博乐市| 泊头市| 许昌市| 承德市| 随州市| 麟游县| 景泰县| 星子县| 民和| 乌拉特中旗| 仪征市| 巧家县| 南安市| 景谷| 武汉市| 金沙县| 襄垣县| 汪清县| 松滋市| 德钦县| 玉屏| 鹤壁市| 甘孜县| 萨嘎县| 肥乡县| 吉木乃县| 孟津县| 南澳县| 蓬莱市| 萍乡市| 台安县| 元氏县| 布尔津县| 冕宁县| 梓潼县| 廉江市| 鹤岗市| 琼结县| 栾川县| 丘北县| 沈阳市|