我已经建立了Selenium 2,它有一个集线器(在高规格的Dell7910Server上,Windows)和8个节点(VM上的所有节点都在Windows上),我的测试框架是在使用Junit的黄瓜-jvm上。我使用Jenkins启动测试,并使用maven构建项目。
下面是一个例子:
我在詹金斯有20个独立的Maven项目作业(Maven+Project+Plugin),前10个工作添加到多项目作业A (Multijob+Plugin),另外10个工作添加到多项目作业B。
当我运行作业A时,构建被成功编译,测试被路由到集线器,然后在我的观察中,我看到测试是按顺序执行的(如果我是对的?)
当我看到集线器控制台时,集线器正在检测所有8个可用节点,但它只创建两个会话,其中第一个测试传递给节点1,第二个测试传递给节点2,其余的节点(3-8)一直处于空闲状态,直到前两个测试完成为止,或者如果测试失败,集线器将创建新的会话到第三个节点,3测试在Node3上执行等等……这个过程一直持续到执行节点8上的第8次测试,在这个过程完成之后,集线器执行节点上的9测试,这是可用的,这显然是Node1的大多数情况。
根据我的要求,我希望中心创建8个会话,并将请求同时传递给所有8个节点,这样,我的前8个测试应该在8台不同的机器上执行,然后再在下一个可用的节点上执行第9次测试,等等……而且我的所有测试都是浏览器特有的,它们应该只在IE中执行。
枢纽和节点配置:
枢纽:
cd c:\selenium-server java -jar selenium-server-独立-2.45.0.jar -role集线器-timeout 600 -browserTimeout 600 http://xx:xx:xx:xx/grid/register -port 4444
节点1:
cd c:\selenium-server java -jar selenium-server-独立-2.45.0.jar -trustAllSSLCertificates -browser browserName="internet explorer",version=11,platform=WINDOWS,maxInstances=1 -role节点-hub http://pc-582v762:4444/grid/register -port 5555 -maxSession 1
节点2、节点3、节点4 ...............Node 8和对其余节点的相同节点命令
注意:我已经用'webDriver‘替换了角色,结果还是一样的,所有的虚拟环境都是Win7和Win8组合。
希望我的问题很清楚。很抱歉提供了大量的信息,我只想说细节。
发布于 2015-07-23 21:19:39
默认情况下,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/
只要有可能,我就尝试用JUnit替换TestNG。
https://stackoverflow.com/questions/31522218
复制相似问题