我想设置一个selenium网格并并行执行我的集成测试。使用Docker撰写文件启动并运行selenium网格。
到目前为止,我尝试了两种方法:
使用第一种方法,启动测试但是ParallelComputer存在并且所有对网格的请求都被删除。这就是我调用 test 并行执行测试的方法:
public class Suite {
@Test
public void parallelTest() {
final Class[] testClasses = findClasses();
final Result result = JUnitCore.runClasses(new ParallelComputer(true, true), testClasses);
}
}
使用第二种方法,测试执行时间太长,最后我的容器进入睡眠状态。这是我定义插件的方式:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.21.0</version>
<configuration>
<includes>
<include>com/integrationtest/**</include>
</includes>
<parallel>classes</parallel>
<threadCount>40</threadCount>
</configuration>
<executions>
</plugin>
我希望第一个版本能够在第一个版本上运行,因为我想在执行测试之前以编程方式进行一些设置。你能建议吗?
由于
答案 0 :(得分:0)
问题在于使用maven-failsafe-plugin或ParallelComputer实例创建的线程数。
硒网格的中心有太多的请求在等待,在某些时候它们中的一些超时,从而使所有后续测试突然退出。
要解决此问题,我更改了maven-failsafe-plugin的配置:
<parallel>classes</parallel>
<perCoreThreadCount>1</perCoreThreadCount>
<threadCountClasses>4</threadCountClasses>
目前我正在测试网格中只有一个节点和节点中的5个实例。它似乎适用于大多数测试,但对于某些测试,我有一个UnreachableBrowserException,仍然在努力。