是否可以在一个节点上运行多个Selenium测试?

时间:2014-11-11 20:00:12

标签: java unit-testing selenium

我有几个用Java编写的大约10个Selenium测试套件。我使用JUnit和我继承的一些扩展JUnit类的类来并行运行测试。

如果我只使用WebDriver而不使用Grid,测试并行运行就好了,但当我尝试在Grid中运行测试时,一些测试通过,但大多数失败,通常会抛出NoSuchElementException。

我使用Grid的原因是最终我可以分发测试,但也可以使用PHP网页等后台服务在我的Windows服务器上执行桌面进程。

我使用的是Selenium 2.43.1。 我有时使用Windows 7在本地计算机上执行测试,有时在使用Windows Server 2008的服务器上执行测试。

我不应该使用同一节点进行多次测试吗? 我应该制作虚拟机并在每个虚拟机上执行一次测试吗? 任何其他建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。我之前已回答过这个问题{/ 3}}。

使用配置json文件,您可以指定maxSessionsmaxInstances串联来控制它。

nodeConfig.json

{
  "capabilities":
      [
        {
          "browserName": "*chrome",
          "maxInstances": 2,
          "seleniumProtocol": "Selenium"
        }
        ... (any other browser capabilities here)
      ],
  "configuration":
  {
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "maxSession": 10,
    "port": 5555,
    "register": true,
    "registerCycle": 5000,
    "hubPort": 4444
  }
}

然后像这样运行你的节点:

java -jar selenium-server-standalone.jar -role node -nodeConfig nodeConfig.json ...