selenium.ScriptTimeoutException: java.util.concurrent.TimeoutException

问题描述

我有通过 Maven Surefire 插件并行运行的 Cucumber 测试。有时代码会抛出一个错误selenium.ScriptTimeoutException: java.util.concurrent.TimeoutException,这显然与并行运行有关。但我不知道如何避免它。

这是整个错误日志:

SELECT * 
FROM crosstab( 'select 1 as "ID",''4'' as "State",AVG((EXTRACT(EPOCH
                   FROM t_processing_status.created_date - B_t_processing_status.acceptance_date))) as "t_Avg"
   FROM t_processing_status,t_processing_status AS B_t_processing_status
   where t_processing_status.declaration_id in
       (SELECT declaration_id
        FROM t_declarations
        WHERE submitter_reference like ''%H700%'') -- retrive all declaration ids
        and t_processing_status.processing_status_type =''4''
     AND B_t_processing_status.declaration_id=t_processing_status.declaration_id
     and B_t_processing_status.acceptance_date BETWEEN ''2021-03-31T04:59:33Z'' AND ''2021-04-07T15:11:47.907Z''
     AND B_t_processing_status.acceptance_date notnull
union 
select 2 as "ID",''12'' as "State",t_processing_status AS B_t_processing_status
   where t_processing_status.declaration_id in
       (SELECT declaration_id
        FROM t_declarations
        WHERE submitter_reference like ''%H700%'') -- retrive all declaration ids
        and t_processing_status.processing_status_type =''12''
     AND B_t_processing_status.declaration_id=t_processing_status.declaration_id
     and B_t_processing_status.acceptance_date BETWEEN ''2021-03-31T04:59:33Z'' AND ''2021-04-07T15:11:47.907Z''
     AND B_t_processing_status.acceptance_date notnull
 ') 
     AS final_result(ID Integer,State TEXT,t_Avg float8);

解决方法

所以解决方案是限制并行运行的数量,因为我的 VPS 上有资源。 来自我的 pom.xml 的示例

<!-- Plugin create text and xml reports -->
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M5</version>
        <!-- Parallel run settings https://cucumber.io/docs/guides/parallel-execution/ -->
        <configuration>
            <parallel>methods</parallel>
            <threadCount>2</threadCount>
            <perCoreThreadCount>false</perCoreThreadCount><!-- IMPORTANT!!! -->
            <includes>
                <include>${category}</include>
            </includes>
        </configuration>
    </plugin>