Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium 测试没有在网格上连续执行_Selenium_Selenium Grid - Fatal编程技术网

Selenium 测试没有在网格上连续执行

Selenium 测试没有在网格上连续执行,selenium,selenium-grid,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 节点启动为 j

下面是我如何开始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"
我有一个TestNG.xml文件,其中包含大约20个测试用例。我开始在网格上执行。执行情况良好,所有测试都在执行,但我面临着一个小问题

执行是启动和执行的,比如说大约10个测试,然后等待15-20分钟,然后执行剩余的测试用例……就像这样。我有点不确定它是如何在执行之间等待一段时间的


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

缺少可用实例。您说过有20个测试用例,执行10个然后等待。当网格中缺少可用实例时,就会发生这种等待。您可以尝试查看Selenium Grid Extras。它可以帮助这种情况

我找到了解决办法

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

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

  • 已使用-启动集线器时超时30。在任何情况下,若节点的插槽并没有空闲,若我们并没有提到-timeout 30,那个么默认情况下1800秒作为节点空闲插槽的超时。现在正是时候


  • 你是并行运行的吗?您有多少个并行线程?是的,通常使用两种方法并行运行,即一次打开两个浏览器。也尝试了5、10甚至1。您使用的是SeleniumGridv2或SeleniumGridv3?Grid3都是最新版本的JAR。我提供的测试用例数量仅作为示例。有没有办法在网格中找到什么问题而不是额外的问题?你能发布日志吗?从那里出发会更容易。从您的问题中我可以理解到,节点似乎实际上在等待一个实例完成,然后再移动到下一个实例。无论您看到什么样的等待时间,实际上都是节点试图等待实例完成的时间。如果你可以发布一些日志,那么就更容易提前发布。在网格中,我们可以获取日志吗?否则我需要尝试网格附加服务。不,人们通常编写自己的日志servlet。将日志转储到一个文件夹中,然后从那里进行检查。它的定制在你这边。寻找其他人共享的selenium网格的自定义servlet。当然,我会查看并让您知道