我在Selenium网格上运行测试-通常有5台计算机并行运行测试。我收到一些不一致的奇怪错误。例如,我的一个测试进行了大约600次迭代,将以下面3个错误中的0-50完成。每次运行时,该数字都不相同。对于每个异常,失败所在的行始终相同。
org.openqa.selenium.UnsupportedCommandException:Command duration or timeout: 65.91 secondscom.web.test.library.BaseTest.openUrl(BaseTest.java:45)
BaseTest中的第45行:
remoteDriver.get(url);
org.openqa.selenium.WebDriverException: Error forwarding the new session Error forwarding the request Read timed outCommand duration or timeout: 134.11 secondscom.web.test.utility.DriverFactory.generateDriver(DriverFactory.java:46)
DriverFactory中的第46行:
WebDriver driver = new RemoteWebDriver("my hub url here", capabilities);
org.openqa.selenium.WebDriverException: Unable to bind to locking port 7054 within 45000 mscom.web.test.utility.DriverFactory.generateDriver(DriverFactory.java:46)
DriverFactory中的第46行:
WebDriver driver = new RemoteWebDriver("my hub url here", capabilities);
当我在线搜索这些错误时,修复程序仅在该错误停止每个测试时才有用。当这样不一致地发生时,我什么也找不到。例如,我发现的针对#1的修复程序需要编辑主机文件。我认为这不是问题,因为它在大约95%的时间内都有效。
最佳答案
我猜您正在使用多个线程进行并行测试。
如果是这样,我建议您查看ThreadGuard。这是使Webdriver线程安全的轻量级解决方案。
如果这不起作用,那么我想您正在遇到网络过载问题(您尝试进行过多的传出连接)。我不知道如何解决这个问题。