我有几个用Java编写的大约10个Selenium测试套件。我使用JUnit和我继承的一些扩展JUnit类的类来并行运行测试。
如果我只使用WebDriver而不使用Grid,测试并行运行就好了,但当我尝试在Grid中运行测试时,一些测试通过,但大多数失败,通常会抛出NoSuchElementException。
我使用Grid的原因是最终我可以分发测试,但也可以使用PHP网页等后台服务在我的Windows服务器上执行桌面进程。
我使用的是Selenium 2.43.1。 我有时使用Windows 7在本地计算机上执行测试,有时在使用Windows Server 2008的服务器上执行测试。
我不应该使用同一节点进行多次测试吗? 我应该制作虚拟机并在每个虚拟机上执行一次测试吗? 任何其他建议将不胜感激。
答案 0 :(得分:0)
是的,这是可能的。我之前已回答过这个问题{/ 3}}。
使用配置json文件,您可以指定maxSessions
与maxInstances
串联来控制它。
{
"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 ...