簡體   English   中英

如何在多個並行線程中運行單個 testng 測試用例

[英]How to run a single testng test case in multiple parallel threads

我想在任何瀏覽器中多次並行運行單個測試 NG 測試用例

A.1. 要多次運行測試用例,請使用 @Test 注釋中的 invocationCount 屬性。 這個 invocationCount 決定了 TestNG 應該運行這個測試方法的次數。

@Test(invocationCount = ?)

A2。 要在不同線程中多次運行測試用例,請使用 @Test 注釋中的 threadPoolSize 屬性。 該屬性告訴 TestNG 創建一個線程池以通過多個線程運行測試方法

@Test(invocationCount = ?, threadPoolSize = ?)

B.3. 要在不同線程的多個瀏覽器中運行測試用例,請將您的 webDriver 初始化為 ThreadLocal

private static ThreadLocal<WebDriver> webDriver = new ThreadLocal<WebDriver>();

在 testng.xml 中創建以瀏覽器名稱作為參數的測試

<test name="Test">
    <parameter name="browserName" value="firefox"></parameter>
    <classes>
        <class name="MyTestCases" />
    </classes>
</test>

<test name="Test">
    <parameter name="browserName" value="Chrome"></parameter>
    <classes>
        <class name="MyTestCases" />
    </classes>
</test>

使用@Parameters() 獲取瀏覽器名稱的值

@BeforeTest
@Parameters("browserName")
public void webDriverHandler(String browserName){
  // String browserName contains parameter value
}

創建驅動程序處理程序和測試庫類。 使用 Driver 處理程序設置和獲取 webDriver 並使用您的基類獲取瀏覽器名稱

驅動程序處理程序:

public class DriverHandler {

private static ThreadLocal<WebDriver> webDriver = new ThreadLocal<WebDriver>();

public static WebDriver getDriver() {
    return webDriver.get();
}

public static void setWebDriver(String browser) {

     WebDriver driver = null;

     if (browser.contains("firefox")) {

       driver = new FirefoxDriver();

    } else if (browser.contains("chrome")) {

       ChromeOptions options = new ChromeOptions();
       driver = new ChromeDriver(options);  

    }
    webDriver.set(driver);
}


}

測試庫:

public class TestBase { 

 @BeforeTest
 @Parameters("browserName")
 public void threadHandler(String browserName) {

    Thread.currentThread().setName(browser.toLowerCase());
    if (DriverManager.getDriver() == null)
        DriverManager.setWebDriver(browser);
 }


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM