使用硒网格进行集成测试

时间:2018-04-13 15:17:36

标签: java selenium parallel-processing grid integration-testing

我想设置一个selenium网格并并行执行我的集成测试。使用Docker撰写文件启动并运行selenium网格。

到目前为止,我尝试了两种方法:

  1. 使用junit ParallelComputer
  2. 使用maven-failsafe-plugin
  3. 使用第一种方法,启动测试但是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>
    

    我希望第一个版本能够在第一个版本上运行,因为我想在执行测试之前以编程方式进行一些设置。你能建议吗?

    由于

1 个答案:

答案 0 :(得分:0)

问题在于使用maven-failsafe-plugin或ParallelComputer实例创建的线程数。

硒网格的中心有太多的请求在等待,在某些时候它们中的一些超时,从而使所有后续测试突然退出。

要解决此问题,我更改了maven-failsafe-plugin的配置:

 <parallel>classes</parallel>
 <perCoreThreadCount>1</perCoreThreadCount>
 <threadCountClasses>4</threadCountClasses>

目前我正在测试网格中只有一个节点和节点中的5个实例。它似乎适用于大多数测试,但对于某些测试,我有一个UnreachableBrowserException,仍然在努力。