0

我已经使用一个集线器(在高规格的戴尔 7910 服务器、Windows 上)和 8 个节点(在 VM 上的所有节点都在 Windows 上)设置了 Selenium Grid 2,并且我的测试框架在 cucumber-jvm 上使用 Junit。我使用 Jenkins 进行测试并使用 maven 构建项目。

这是示例:

我在 Jenkins 中有 20 个独立的 Maven 项目作业(Maven+Project+Plugin),前 10 个作业被添加到多项目作业 A(Multijob+Plugin),另外 10 个作业被添加到多项目作业 B。

当我运行 Job A 时,构建成功编译并且测试被路由到集线器,然后在我的观察中我看到测试是连续执行的(如果我是正确的?)

当我看到集线器控制台时,集线器检测到所有 8 个节点都可用,但它只创建 2 个会话,其中第一个测试传递给节点 1,第二个测试传递给节点 2,其余节点 (3-8) 保持空闲直到前两个测试完成或任何测试失败,然后集线器创建到第三个节点的新会话,并在 Node3 上执行第 3 个测试,依此类推......这个过程一直持续到它在此之后在节点 8 上执行第 8 个测试过程完成集线器在可用的节点上执行 9 测试,这在大多数情况下很明显是 Node1。

根据我的要求,我希望集线器创建 8 个会话并一次将请求传递给所有 8 个节点,以便我的前 8 个测试一旦完成就应该在 8 个不同的机器上执行,然后是下一个可用节点来执行第 9 个测试和等等....而且我所有的测试都是特定于浏览器的,它们应该只在 IE 中执行。

集线器和节点配置:

中心:

cd c:\selenium-server java -jar selenium-server-standalone-2.45.0.jar -role hub -timeout 600 -browserTimeout 600 http://xx:xx:xx:xx/grid/register -port 4444

节点 1:

cd c:\硒服务器

java -jar selenium-server-standalone-2.45.0.jar -trustAllSSLCertificates -browser browserName="internet explorer",version=11,platform=WINDOWS,maxInstances=1 -Dwebdriver.ie.driver=c:\IEDriver\InternetExplorerDriver。 exe -role node -hub http://pc-582v762:4444/grid/register -port 5555 -maxSession 1

节点 2,节点 3,节点 4 ......节点 8 和相同的节点命令到其余节点

注意:我已将角色替换为“webDriver”,结果仍然相同,所有虚拟环境都是 Win7 和 Win8 组合

希望我对我的问题很清楚。对不起,大量信息,我只想详细说明。

4

1 回答 1

0

默认情况下,CucumberJVM 附带 JUnit 并在单线程中运行测试。如果您想并行运行它,这里是 JUnit 特定解决方案的示例:

https://www.opencredo.com/2013/07/02/running-cucumber-jvm-tests-in-parallel

这是特定于 TestNG 的解决方案:

http://automatictester.co.uk/2015/06/11/basic-cucumberjvm-selenium-webdriver-test-automation-framework/

我尽可能尝试用 TestNG 替换 JUnit。

于 2015-07-23T21:19:39.717 回答