t.me/atinfo_chat Telegram группа по автоматизации тестирования

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

nunit
parallel
execution
chrome
webdriver
Теги: #<Tag:0x00007f9c4d5b66c0> #<Tag:0x00007f9c4d5b6558> #<Tag:0x00007f9c4d5b63c8> #<Tag:0x00007f9c4d5b6238> #<Tag:0x00007f9c4d5b60d0>

(Viktor) #1

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

  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.


(Vasiliy Rakshin) #2

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


(Viktor) #3

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