1. 程式人生 > 其它 >《手把手教你》系列基礎篇(七十七)-java+ selenium自動化測試-框架設計基礎-TestNG依賴測試- 上篇(詳解教程)

《手把手教你》系列基礎篇(七十七)-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"); } @Test
public 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.小結

  好了,時間也不早了,今天就分享和講解到這裡,希望對您有所幫助,感謝您耐心地閱讀!