1

重用线程可能不是正确的术语,但是我正在运行一个测试自动化设置,该设置使用<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;
        }
    };
}
4

0 回答 0