Selenium Grid测试在多个节点上分发

时间:2015-07-20 17:02:47

标签: java maven jenkins selenium-grid2

我已经将Selenium Grid 2设置为一个集线器(在高规格的Dell 7910服务器,Windows上)和8个节点(在VM上都在Windows上),我的测试框架在使用Junit的cucumber-jvm上。我使用Jenkins来测试并使用maven构建项目..

以下是示例:

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

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

当我看到Hub控制台时,集线器检测到所有8个节点都可用,但它只创建了2个会话,其中第一个Test传递给节点1,第二个Test传递给节点2和其余节点(3-8) )在前两个测试完成之前保持空闲状态,或者如果任何测试失败,那么集线器会创建到第三个节点的新会话,并且3测试在Node3上执行等等......这个过程一直持续到它在节点上执行第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:\ selenium-server

     

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组合

希望我对我的问题非常清楚。很抱歉质量信息,我只想详细说明。

1 个答案:

答案 0 :(得分: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。

相关问题