TestNG - 套件測試



測試套件是一組測試用例,旨在測試軟體程式的行為或一組行為。在 TestNG 中,我們不能在測試原始碼中定義套件,而是由一個 XML 檔案表示,因為套件是執行的功能。它還允許靈活配置要執行的測試。一個套件可以包含一個或多個測試,並由<suite>標籤定義。

<suite> 是 testng.xml 的根標籤。它描述一個測試套件,該套件又由幾個 <test> 部分組成。

下表列出了 <suite> 接受的所有合法屬性。

序號 屬性及描述
1

name

此套件的名稱。這是一個必需屬性。

2

verbose

此執行的級別或詳細程度。

3

parallel

TestNG 是否應執行不同的執行緒來執行此套件。

4

thread-count

如果啟用了並行模式,則要使用的執行緒數(否則忽略)。

5

annotations

您在測試中使用的註解型別。

6

time-out

將在此測試中找到的所有測試方法上使用的預設超時。

在本章中,我們將向您展示一個包含兩個測試類 Test1 和 Test2 的示例,使用測試套件一起執行。

建立類

建立一個要測試的 Java 類,例如,MessageUtil.java/work/testng/src 中。

/*
* This class prints the given message on console.
*/

public class MessageUtil {
   private String message;

   // Constructor
   // @param message to be printed
   public MessageUtil(String message) {
      this.message = message;
   }

   // prints the message
   public String printMessage() {
      System.out.println(message);
      return message;
   }

   // add "Hi!" to the message
   public String salutationMessage() {
      message = "Hi!" + message;
      System.out.println(message);
      return message;
   }
}

建立測試用例類

/work/testng/src 中建立一個名為 Test1.java 的 Java 類檔案。

import org.testng.Assert;
import org.testng.annotations.Test;

public class Test1 {
   String message = "Manisha";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testPrintMessage() {
      System.out.println("Inside testPrintMessage()");
      Assert.assertEquals(message, messageUtil.printMessage());
   }
}

/work/testng/src 中建立一個名為 Test2.java 的 Java 類檔案。

import org.testng.Assert;
import org.testng.annotations.Test;

public class Test2 {
   String message = "Manisha";
   MessageUtil messageUtil = new MessageUtil(message);

   @Test
   public void testSalutationMessage() {
      System.out.println("Inside testSalutationMessage()");
      message = "Hi!" + "Manisha";
      Assert.assertEquals(message,messageUtil.salutationMessage());
   }
}

現在,讓我們在 /work/testng/src 中編寫 testng.xml,它將包含如下所示的 <suite> 標籤:

<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<suite name = "Suite1">

   <test name = "exampletest1">
      <classes>
         <class name = "Test1" />
      </classes>
   </test>

   <test name = "exampletest2">
      <classes>
         <class name = "Test2" />
      </classes>
   </test>

</suite>

Suite1 包含 exampletest1exampletest2

使用 javac 編譯所有 Java 類。

/work/testng/src$ javac MessageUtil.java Test1.java Test2.java

現在,執行 testng.xml,這將執行在提供的測試用例類中定義的測試用例。

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

驗證輸出。

  Manisha
  Inside testSalutationMessage()
  Hi!Manisha

  ===============================================
  Suite1
  Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
  ===============================================

您還可以檢查 test-output 資料夾。在 Suite1 資料夾下,您可以看到建立的兩個 html 檔案,exampletest1.html 和 exampletest2.html,它們看起來如下:

Suite Tests

Suite Tests
廣告
© . All rights reserved.