В настоящее время я работаю с этим исключением, когда параллельно запускаю несколько тестов для сетки селена, развернутой с использованием K8.Я развернул кластеры в AWS и Azure и получил ту же ошибку.Ошибка возникает, когда я пытаюсь выполнить больше тестов, чем есть узлов, я могу успешно выполнить несколько тестов, а затем через короткий промежуток времени все остальные тесты пройдут с этой ошибкой.
OpenQA.Selenium.WebDriverException: было сгенерировано исключение с нулевым ответом при отправке HTTP-запроса на удаленный сервер WebDriver для URL-адреса xxxxxx.xxx.xxx/wd/hub/session.Состояние исключения было ConnectionClosed, и сообщение было следующим: Основное соединение было закрыто: Соединение было неожиданно закрыто.
Я настроил тайм-ауты на концентраторе селена (тайм-аут браузера, тайм-аут, newsesssiontimeout)а также время ожидания команды от удаленного веб-драйвера и ничего не меняется.Я также не получаю сообщение об ошибке при локальном тестировании.
Вот мой текущий стек.
- RemoteWebdriver: 3.14.0
- Selenium Hub: 3.14.0
- Selenium Node: 3.14.0
- Хром: 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 хромовый узел) я пытаюсь запустить 20 тестов, ожидая, что тесты будут поставлены в очередь.Приблизительно после 10 прохождений тестов тестовый запуск завершится неудачно и выдаст эту ошибку.
Я ищу правильные места для добавления ожидания или тайм-аута, чтобы мы могли правильно обрабатывать очередь тестов.
Заранее спасибо.