Selenium тесты не останавливаются через Jenkins

jenkins
webdriver
java
Теги: #<Tag:0x00007fedc03cde98> #<Tag:0x00007fedc03cdcb8> #<Tag:0x00007fedc03cda10>

(Вячеслав Бульба) #1

Всем привет. Selenium (WebDriver) тесты на Java не останавливаются через Jenkins. Никто не сталкивался с такой проблемой? Jenkins крутится на линухах. Сами тесты - это maven проект. Тесты запускаются на гриде. Сам грид и его ноды - виндовые виртуалки.
Проблема в том, что когда останавливаю запущенный джоб на Jenkins через его UI, сами тесты на гриде не останавливаются, а продолжают бежать, пока все не добегут. То есть фактически не происходит прерывания выполнения.
Есть идеи почему процессы не останавливаются?


(Funker) #2

а как вы решили что тесты не останавливаются? Как вы определили что они все еще бегут? по rdp зашли и видите как там в браузере все скачет и прыгает все еще или на grid hub видно что на нодах браузеры еще в работе


(Bolatbek) #3

Полагаю, он видит логи прохождения тестов до конца.


(Вячеслав Бульба) #4

Да, на нодах и в админке хаба тесты продолжат бежать. И отчёт сразу не приходит.


(Sergey Korol) #5

Дженкинс просто не прибивает ваши child процессы при аборте. Даже если вы его заставите это делать, вероятней всего у вас тестовые сессии останутся в висячем состоянии. И до наступления таймаута вы не сможете запустить ничего нового на "мертвых" нодах. Разве что явно отправлять реквест на удаление сессии. Но ее надо еще знать. А при аборте джобы вы вряд ли сможете собрать подобную информацию автоматически. Ну и собственно висячие браузеры / драйвера тоже надо убивать.

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


(Вячеслав Бульба) #6

Оставшиеся висеть браузеры и сессии - не та проблема, которую я хотел бы решить. Повторюсь. Проблема в том, что когда останавливаю запущенный джоб на Jenkins через его UI, сами тесты на гриде не останавливаются, а продолжают бежать, пока все не добегут.


(Sergey Korol) #7

Ок, вместо тысячи слов: