TestNG - 基本註解 - DataProvider



@DataProvider 註解幫助我們編寫資料驅動的測試用例。@DataProvider 註解使我們能夠透過傳遞不同的資料集來多次執行測試方法。

@DataProvider 註解支援的屬性列表如下:

屬性 描述

name

此資料提供程式的名稱。如果未提供,則此資料提供程式的名稱將自動設定為方法的名稱。帶註解的方法必須返回一個 Object[][],其中每個 Object[] 可以分配給測試方法的引數列表。

parallel

如果設定為true,則使用此資料提供程式生成的測試將並行執行。預設值為false

建立測試用例類

  • 建立一個 Java 測試類,例如,TestAnnotationDataProvider.java/work/testng/src 目錄下。

  • 向測試類新增一個測試方法 testMethod()。

  • 向 testMethod() 方法新增 @Test 註解。

  • 向測試類新增一個帶有 @DataProvider 註解的方法 dataProviderMethod。

  • 實現測試條件並檢查 @DataProvider 註解的行為。

以下是 TestAnnotationAfterMethod.java 的內容

  import org.testng.annotations.Test;
  import org.testng.annotations.DataProvider;

  public class TestAnnotationDataProvider {
    @DataProvider(name = "data-provider")
    public Object[][] dataProviderMethod() {
        return new Object[][] { { "data one" }, { "data two" }, { "data three" } };
    }

    @Test(dataProvider = "data-provider")
    public void testMethod(String data) {
        System.out.println("Data is: " + data);
    }

  }

建立 testng.xml

接下來,讓我們在 /work/testng/src 目錄下建立一個 testng.xml 檔案來執行測試用例。此檔案以 XML 格式捕獲您的所有測試。此檔案使您可以輕鬆地在單個檔案中描述所有測試套件及其引數,您可以將此檔案檢入您的程式碼庫或透過電子郵件傳送給同事。它還可以輕鬆地提取測試的子集或拆分多個執行時配置(例如,testngdatabase.xml 只執行測試您的資料庫的測試)。

  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
  <suite name="Suite">
    <test thread-count="5" name="Test">
      <classes>
        <class name="TestAnnotationDataProvider"/>
      </classes>
    </test> <!-- Test -->
  </suite> <!-- Suite -->

使用 javac 編譯測試用例。

/work/testng/src$ javac TestAnnotationDataProvider.java

現在,執行 testng.xml,它將執行在 <test> 標籤中定義的測試用例。正如您所看到的,@DataProvider 將引數傳遞給測試方法。

/work/testng/src$ java org.testng.TestNG testng.xml

驗證輸出。

  Data is: data one
  Data is: data two
  Data is: data three

  ===============================================
  Suite
  Total tests run: 3, Passes: 3, Failures: 0, Skips: 0
  ===============================================
廣告