我在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线程安全的轻量级解决方案。

    如果这不起作用,那么我想您正在遇到网络过载问题(您尝试进行过多的传出连接)。我不知道如何解决这个问题。

    07-25 20:36