TestNG 並行執行



TestNG允許透過以下方式並行或在單獨的執行緒中執行測試

  • 並行套件:如果您正在執行多個套件檔案(例如testng1.xml testng2.xml),並且希望每個套件都在單獨的執行緒中執行。使用以下命令列標誌來指定執行緒池的大小。

      java org.testng.TestNG -suitethreadpoolsize 3 testng1.xml testng2.xml testng3.xml
      
  • 並行測試、類和方法:分別在<suite>標籤上使用parallel屬性(對於方法、測試、類、例項)。

          <suite name="My suite" parallel="methods" thread-count="5">
        
          <suite name="My suite" parallel="tests" thread-count="5">
        
          <suite name="My suite" parallel="classes" thread-count="5">
        
          <suite name="My suite" parallel="instances" thread-count="5">
        

由於跨瀏覽器測試的重要性,並行測試在Selenium中得到了廣泛應用。如今市場上有許多不同版本的瀏覽器,建立一個瀏覽器矩陣並並行執行測試將節省大量時間和其他資源。

優勢和劣勢

以下是使用TestNG進行並行測試的一些優勢

  • 縮短時間

  • 允許多執行緒測試

以下是使用TestNG進行並行測試的一些劣勢

  • 依賴模組失敗 - 測試大多數情況下是相互依賴的,因此失敗的可能性更大。

  • 程式流程順序 - 測試人員應該充分了解程式流程才能建立並行測試模組。

建立測試用例類

讓我們來看一個並行執行測試方法的示例。建立一個Java類,例如TestParallel.java/work/testng/src目錄下。

  import org.testng.annotations.Test;

  public class TestParallel {
  	@Test
  	   public void method1() {
  	      System.out.println("Inside method1()");
  	      //Assert.assertEquals(message, messageUtil.printMessage());
  	   }
  	@Test
  	public void method2() {
  	      System.out.println("Inside method2()");
  	      //Assert.assertEquals(message, messageUtil.printMessage());
  	   }
  }

前面的測試類包含兩個將在單獨執行緒中執行的測試方法。

建立testng.xml

/work/testng/src目錄下建立testng.xml來執行測試用例。

  <?xml version = "1.0" encoding = "UTF-8"?>
  <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
  <suite name = "Parallel Testing Suite">
     <test name = "Parallel Tests" parallel = "methods">
        <classes>
           <class name = "TestParallel" />
        </classes>
     </test>
  </suite>

使用javac編譯TestParallel類。

/work/testng/src$ javac TestParallel.java

現在,執行testng.xml。

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

驗證輸出。

Inside method1()
Inside method2()

===============================================
Parallel Testing Suite
Total tests run: 2, Passes: 2, Failures: 0, Skips: 0
===============================================
廣告