重用线程可能不是正确的术语,但是我正在运行一个测试自动化设置,该设置使用<threadCount>
maven surefire 来运行我的 testNG 测试套件。问题是:
测试正在运行并打开一个新的浏览器,直到要运行的测试数量大于指定的threadCount
. 例如,如果我在运行中有 10 个测试并指定 7 个线程,我将启动 7 个浏览器,但是它不会等到这些浏览器关闭再启动另外 3 个,而是重新使用 7 个浏览器中的 3 个来执行接下来的测试。
在这种情况下,我如何让它等待 7 完成,然后启动另外 3 个全新的浏览器,而不重用相同的浏览器实例。
扩大规模将变得不可行,例如,如果我要运行 100 个测试并使用 10 个线程,我将在原始 10 个浏览器实例中重新运行 90 个测试。
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.version}</version>
<configuration>
<parallel>methods</parallel>
<threadCount>${thread.count}</threadCount>
<suiteXmlFiles>
这是一些用于启动我的驱动程序的代码:
@BeforeSuite(alwaysRun = true, description = "Driver Instantiation")
public static void instantiateDriverObject() {
driverFactory = new ThreadLocal<DriverFactory>() {
@Override
protected DriverFactory initialValue() {
DriverFactory driverFactory = new DriverFactory();
webDriverThreadPool.add(driverFactory);
return driverFactory;
}
};
}