测试未在网格上连续执行

时间:2018-07-20 06:35:01

标签: selenium selenium-grid

下面是我启动Hub的方法

java\bin\java.exe -cp .\lib\* -Dwebdriver.ie.driver=drivers\IEDriverServer.exe -Dwebdriver.gecko.driver=drivers\geckodriver.exe -Dwebdriver.chrome.driver=drivers\chromedriver.exe org.openqa.grid.selenium.GridLauncherV3 -role hub

节点启动为

java\bin\java.exe -cp .\lib\* -Dwebdriver.ie.driver=drivers\IEDriverServer.exe -Dwebdriver.gecko.driver=drivers\geckodriver.exe -Dwebdriver.chrome.driver=drivers\chromedriver.exe org.openqa.grid.selenium.GridLauncherV3 -role node -hub http://localhost:4444/grid/register -maxSession 15 -browser "browserName=internet explorer, maxInstances=5" -browser "browserName=firefox, maxInstances=5" -browser "browserName=chrome, maxInstances=5"

我有大约20个测试用例的TestNG.xml文件。我开始在网格上执行。执行效果很好,所有测试都在执行,但我面临的是小问题。

执行开始并执行大约10个测试,然后等待大约15-20分钟,然后执行其余的测试用例……就这样。我不确定它在两次执行之间等待了一段时间吗?

此等待与脚本中的等待命令无关,我的测试用例已完全执行,并且该测试用例的浏览器已关闭,然后必须为另一个测试用例打开新的浏览器。在这里等待。一段时间后,执行将继续,然后等待一段时间。

2 个答案:

答案 0 :(得分:0)

缺少可用的免费实例。您说有20个测试用例,然后执行10个然后等待。当缺少免费实例时,此类等待会在Grid中发生。您可以尝试看看Selenium Grid Extras。它可以帮助这种情况。

答案 1 :(得分:0)

我有解决办法。

实际上,这是驱动程序在执行之间等待而不是连续执行所有测试的两个原因。

  1. 我错过了driver.quit();我启动了驱动程序,设置为本地线程,测试完成后,关闭了驱动程序并删除了线程。由于未使用driver.quit,因此不会为另一个节点释放插槽,现在使用driver.quit为另一个节点释放插槽

  2. 启动集线器时使用-timeout 30。在任何情况下,如果没有为节点释放插槽,并且如果我们没有提到-timeout 30,则默认情况下将1800秒作为节点的空闲插槽超时。这是非常高的时间。

相关问题