gpt4 book ai didi

与 Kubernetes 一起部署时,Selenium Hub 无法处理测试队列

转载 作者:行者123 更新时间:2023-12-02 20:02:25 24 4
gpt4 key购买 nike

当我针对使用 K8s 部署的 selenium 网格并行运行多个测试时,我目前正在遇到此异常。我已经在 AWS 和 Azure 中部署了集群并收到了同样的错误。当我尝试运行的测试多于节点数时会发生该错误,我可以成功运行一些测试,然后在很短的时间后,它将失败所有剩余的测试并出现此错误。

OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL xxxxxx.xxx.xxx/wd/hub/session. The status of the exception was ConnectionClosed, and the message was: The underlying connection was closed: The connection was closed unexpectedly.



我已经调整了 selenium 集线器上的超时(浏览器超时、超时、newsesssiontimeout)以及来自 remotewebdriver 的命令超时,并且没有任何变化。我在本地测试时也没有收到错误。

这是我当前的堆栈。
  • 远程Webdriver:3.14.0
  • Selenium 集线器:3.14.0
  • Selenium 节点:3.14.0
  • Chrome :69
  • C#/Nunit
  • AKS/EKS

  • 代码:
        [TestCaseSource(typeof(MyFactoryClass), nameof(MyFactoryClass.TestCases))]
    public void ZaleniumTest(int x)
    {
    var caps = new DesiredCapabilities();
    caps.SetCapability("browserName", "chrome");
    var driver =
    new RemoteWebDriver(new Uri(Url), caps, TimeSpan.FromSeconds(1200)) {Url = "http://www.google.com"};
    driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1200);
    var query = driver.FindElement(By.Name("q"));
    query.SendKeys("Cheese");
    query.Submit();
    System.Threading.Thread.Sleep(3000);
    Assert.IsTrue(driver.Title.Contains("Google"));
    driver.Quit();
    }

    以下是我为部署网格而运行的命令:
        kubectl run selenium-hub --image selenium/hub:latest --port 4444
    kubectl expose deployment selenium-hub --type=LoadBalancer
    kubectl run selenium-node-chrome --image selenium/node-chrome:latest --env="HUB_PORT_4444_TCP_ADDR=selenium-hub" --env="HUB_PORT_4444_TCP_PORT=4444"

    通过这个简单的网格设置(1 个集线器 1 个 chrome 节点),我尝试运行 20 个测试,并期望这些测试将排队。大约 10 次通过测试后,测试运行将失败并产生该错误。

    我正在寻找添加等待或超时的正确位置,以便我们可以正确处理测试队列。

    提前致谢。

    最佳答案

    我能够找到问题所在。事实证明,AWS 和 Azure 中的负载均衡器都有空闲超时设置。我在 AWS 中的情况设置为 60 秒。我将超时设置为 3600 秒,这似乎解决了问题。

    关于与 Kubernetes 一起部署时,Selenium Hub 无法处理测试队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52488627/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com