Ошибка при параллельном запуске UI авто тестов тестов c помощью Nunit

Привет! При параллельном запуске появляется ошибка (см. ниже) , кто сталкивался, как решали?

  1. Есть тесты написанные на C#, Nunit, Webdriver (NgDriver)
  2. Делаю параллельный запуск тестов в 2 или 4, потока из под Студии с помощью [Parallelizable(ParallelScope.Fixtures)]
    Драйвер не статический, в TestBase для каждого класса создается собственный экземпляр драйвера и сюит тестов гоняется в одной сессии
  3. После прохождения 10-15 тестов появляется ошибка
  4. Обычно происходит на тестах где много полей ввода и большое количество проверок в форме
  5. На виртуалке из под Тимсити тоже самое
  6. Если не запускать параллельно, то все ок

Ошибка при обычном запуске локально из под студии и в Тимсити: Message: OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL. The status of the exception was UnknownError, and the message was: Only one usage of each socket address (protocol/network address/port) is normally permitted Only one usage of each socket address (protocol/network address/port) is normally permitted

Ошибка при запуске в Selenium Grid локально из под студии
Message: OneTimeSetUp: OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL timed out after 60 seconds.
----> System.Net.WebException : The operation has timed out.

Попробуйте убивать браузер через какое-то количество тестов (если вы его не пересоздаёте перед каждым тестом, что конечно же увеличивает общее время работы).
Но вообще-то это похоже что у вас идёт утечка памяти в тестируемом приложении и надо бы как-то попытаться руками поймать эту ситуацию. Хотябы пройти руками пред-пред-последний, пред-последний и проблемный тест и посмотреть на ресурсы.

Запуск драйвера для каждого теста помогает, но это дополнительно замедлит тесты, которые и так замедляются от параллельности. Надо будет еще попробовать заменить логику поиска при помощи FindElements на Xpath, решил попользоваться думал удобнее будет, но по перфомансу сильное проседание оказывается

У меня проблема аналогичная, хотя для каждого теста стартует отдельный браузер и драйвер, и икспасы используются

А вы используете NgDrver(NgDriver под капотом часто выполняет ExecuteScript метод) или часто выполняете ExecuteScript метод? У вас тесты содержат много действий?

Я решил проблему несколькими манипуляциями

  1. Убрал NgDriver(Protractor) - под капотом часто выполняет ExecuteScript метод
  2. Уменьшил частоту выполнения ExecuteScript во время ожидания страниц, объединил скрипты ожидания в один и выполняю одним разом + выполняю его только после навигации или каких то действий типа клик или ввод
  3. Стал перезапускать драйвер чаще для массивных тестов

Но все равно мне кажется это полностью решит проблему, а позволит ее убрать для тех условий в которых я запускаю тесты

На Java это кстати походу пофиксили. И в Selenium 4 на C# Тут описана эта проблема