Geb / Spock + Selenium Grid上的集成测试不能并行运行

问题描述 投票:1回答:3

我有以下设置:一个集成测试项目,它有一套用Groovy / Geb + Spock编写的测试,它们使用Selenium WebDriver和Selenium Grid(RemoteWebDriver)完美运行。

问题在于,无论我多少尝试调整“系统”,我都无法让测试并行运行(即虽然我有3个从站[节点]注册到集线器,但只有一个从站实际接收请求)。我已经对Selenium节点强制执行maxSession = 1,并尝试在failsafe插件配置(pom.xml文件)中使用parallel = classes | methods,threadCount和fork设置的不同组合。

我觉得问题出在maven配置和selenium网格之间,可能与Geb / Spock配置有关。

你们中有没有人对这个问题有任何见解?

PS:有人建议使用Geb / Spock并行运行测试是不可能的 - 因为某些原因?Geb?锁定JUnitRunner(不确定这意味着什么)。

selenium-grid spock geb maven-failsafe-plugin
3个回答
0
投票

你可以肯定地运行它,关键是你必须把它们(你的睾丸)放在threads.Here中。


0
投票

有一些测试框架,例如TestNG,它支持开箱即用的方法级别的并行测试。相反,Spock不支持它。

但是,您不必通过测试框架实现多线程来实现此功能。 您可以使用构建工具并行运行测试类,Maven和Gradle都支持此类。

如果您使用的是Maven,这个文档页面和示例可能对您有所帮助:https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html具体来看看“分叉测试执行”。


0
投票

将以下配置添加到build.gradle文件中:

tasks.withType(Test) {
        maxParallelForks = 3 // here three forks shall open in parallel
        forkEvery = 1
        include '**/*TestName*.class'   // name of your test class
}
© www.soinside.com 2019 - 2024. All rights reserved.