《手把手教你》系列基礎篇(七十七)-java+ selenium自動化測試-框架設計基礎-TestNG依賴測試- 上篇(詳解教程)
1.簡介
今天主要是講解和分享:TestNG中一個類中有多個測試方法的時候,多個測試方法的執行順序或者依賴關係的問題。如果不用dependsOnMethods,testNG會自動根據@Test方法名稱的首字母排序來執行測試方法。但是有時,我們可能需要以特定順序呼叫測試用例中的方法,或者可能希望在方法之間共享一些資料和狀態。 TestNG支援這種依賴關係,因為它支援在測試方法之間顯式依賴的宣告。
2.TestNG允許指定依賴關係
①在@Test註釋中使用屬性dependsOnMethods
②在@Test註釋中使用屬性dependsOnGroups。
在TestNG中,我們使用dependOnMethods和dependsOnGroups來實現依賴測試。 如果依賴方法失敗,則將跳過所有後續測試方法。
3.dependOnMethods
通過方法名給出測試方法的依賴關係。一個簡單的例子,“test1()”依賴“test4()”。
正常的測試用例順序應該是test1>test2>test3>test4,這裡在test1寫了依賴關係為test4,所以此時執行後的結果是如圖中test4>test2>test3>test1。
3.1程式碼設計
3.2參考程式碼
package library; import org.testng.annotations.Test; /** * @author 北京-巨集哥 * * @公眾號:北京巨集哥 * * 《手把手教你》系列基礎篇(七十七)-java+ selenium自動化測試-框架設計基礎-TestNG依賴測試(詳解教程) * * 2022年3月03日*/ public class TestDepend { @Test(dependsOnMethods = {"test4"}) public void test1() { System.out.println("test1"); } @Test public void test2() { System.out.println("test2"); } @Test public void test3() { System.out.println("test3"); } @Testpublic void test4() { System.out.println("test4"); } }
3.3執行程式碼
1.執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
3.4依賴關係的規則
從上邊的執行結果可以看出依賴關係的規則是:
① 優先被依賴關係方法
② 沒有依賴關係的
③ 需要依賴關係的
3.5依賴方法失敗
1.如果test4()
失敗,則將跳過test1()
。
2.參考程式碼
package library; import org.testng.annotations.Test; /** * @author 北京-巨集哥 * * @公眾號:北京巨集哥 * * 《手把手教你》系列基礎篇(七十七)-java+ selenium自動化測試-框架設計基礎-TestNG依賴測試(詳解教程) * * 2022年3月03日 */ public class TestDepend { @Test(dependsOnMethods = {"test4"}) public void test1() { System.out.println("test1"); } @Test public void test2() { System.out.println("test2"); } @Test public void test3() { System.out.println("test3"); } @Test public void test4() { System.out.println("test4"); throw new RuntimeException(); } }
3.執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
4.dependsOnGroups
以組名方式測試依賴方法。對於多個被依賴的測試方法,可以通過方法名直接給出(dependsOnMethods = {"test2","test3"}),也可以通過組名給出被依賴的測試方法。
組名新增:@Test(groups={“組名稱”})
@Test(dependsOnGroups=“組名”)
注:方法名時用的是{};
4.1程式碼設計
4.2參考程式碼
package library; import org.testng.annotations.Test; /** * @author 北京-巨集哥 * * @公眾號:北京巨集哥 * * 《手把手教你》系列基礎篇(七十七)-java+ selenium自動化測試-框架設計基礎-TestNG依賴測試(詳解教程) * * 2022年3月03日 */ public class TestDepend { @Test public void test() { System.out.println("test"); } @Test(dependsOnGroups = "T23") public void test1() { System.out.println("test1"); } @Test(groups = {"T23"}) public void test2() { System.out.println("test2"); } @Test(groups = {"T23"}) public void test3() { System.out.println("test3"); } }
4.3執行程式碼
1.執行程式碼,右鍵Run AS->TestNG Suite,控制檯輸出,如下圖所示:
5.小結
好了,時間也不早了,今天就分享和講解到這裡,希望對您有所幫助,感謝您耐心地閱讀!