[英]How to run a single testng test case in multiple parallel threads
我想在任何浏览器中多次并行运行单个测试 NG 测试用例
A.1. A.1. To run a test case multiple times use invocationCount attribute in @Test annotation.
要多次运行测试用例,请使用 @Test 注释中的 invocationCount 属性。 This invocationCount determines how many times TestNG should run this test method.
这个 invocationCount 决定了 TestNG 应该运行这个测试方法的次数。
@Test(invocationCount = ?)
A.2. A2。 To run a test case mutiple times in different threads use threadPoolSize attribute in @Test annotation.
要在不同线程中多次运行测试用例,请使用 @Test 注释中的 threadPoolSize 属性。 This attribute tells TestNG to create a thread pool to run the test method via multiple threads
该属性告诉 TestNG 创建一个线程池以通过多个线程运行测试方法
@Test(invocationCount = ?, threadPoolSize = ?)
B.3. B.3. To run a test case in multiple browsers in different threads initialize your webDriver as ThreadLocal
要在不同线程的多个浏览器中运行测试用例,请将您的 webDriver 初始化为 ThreadLocal
private static ThreadLocal<WebDriver> webDriver = new ThreadLocal<WebDriver>();
In testng.xml create tests with browser name as a parameter在 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>
use @Parameters() to fetch the value of browser name使用@Parameters() 获取浏览器名称的值
@BeforeTest
@Parameters("browserName")
public void webDriverHandler(String browserName){
// String browserName contains parameter value
}
Create a Driver handler and a testbase classes.创建驱动程序处理程序和测试库类。 Use Driver handler to set and get webDriver and use your base class to fetch the browser name
使用 Driver 处理程序设置和获取 webDriver 并使用您的基类获取浏览器名称
Driver handler:驱动程序处理程序:
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);
}
}
testbase:测试库:
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.