Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Отобразить браузер при запуске тестов в Jenkins


(Pavel Gavrilov) #1

Здравствуйте.

Подскажите можно ли сделать так: при запуске тестов в Jenkins показывать окно браузера (в браузере отображались все действия тестов).

Нашел только если включить опцию в сервисе Jenkins - “Allow service to interact with desktop”. Открывается какое то Java приложение и там запускается браузер - однако такой вариант не подходит если держать эту Java программу закрытой то скриншоты в IE - черный фон.

Спасибо.


Не запускается браузер на ноде
Отображение браузера при выполнении тестов- Selenium
(Dmitriy Zverev) #2

Вы можете запускать Jenkins-slave как процесс:

java -jar slave.jar -jnlpUrl <url to jenkins server> -secret <token>

(Dmitriy Zverev) #3

Возможно, у Вас проблема именно с “чёрными скриншотами”

Вот, что я когда-то нагуглил по этому поводу

В selenium web driver существует проблема получения скриншота на удалённом сервере.
Проблема подробно описана в интернете: google, баг в трекере selenium

Краткое описание: при запуске тестов selenium на удалённой машине, например, через jenkins вместо скриншотов viewport браузера получаются черные квадраты. Данный баг характерен только для Internet Explorer.

Существуют решения, которые мне очень не нравятся:

  1. Запуск jenkins slave как процесса, а не сервиса

a.Jenkins-slave как процесс: java -jar slave.jar -jnlpUrl -secret
b.Закрывать RDP сессию с удалённой машиной, где расположен jenkins slave надо командой:
tscon rdp-tcp#1 /dest:console
Данную команду надо выполнять с host машины

  1. Запуск jenkins slave как сервис с опцией “Allow service to interact with desktop”

a.Запустить jenkins slave как сервис от имени "Local system account"с опцией “Allow service to interact with desktop”
b.При выполнении тестов открыть окно от имени этого процесса

Если кто-то знает другое решение проблемы, то пишите.


(Pavel Gavrilov) #4

Как мне правильно эту строку записать, что нужно изменить? Без этой команды как я понимаю ничего не запуститься?

Вот что пишет:


(Dmitriy Zverev) #5

Вот тут посмотрите, что предлагают:


(Pavel Gavrilov) #6

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


(Mykhailo Poliarush) #7

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


(Дмитрий Кочнев) #9

Привет. В моём случае Jenkins запущен не через сервис windows, а через Tomcat (jenkins.war). В этом случае решение тоже tscon?
Спасибо.


(Dmitry Bogatko) #10

всё зависит от операционной системы. начиная с версии windows nt 6.0 сервисы запускаются в отдельной сессии.
описывается здесь: https://msdn.microsoft.com/en-us/library/windows/hardware/dn653293(v=vs.85).aspx
и решение вроде бы тоже имеется.


(Дмитрий Кочнев) #11

Томкат запущен как сервис, Windows 7 x64. Значит тесты запускаются не в сессии пользователя (наверное в сессии Томката) и поэтому не видимы?


(Дмитрий Кочнев) #12

Jenkins запускается через “java -jar jenkins.war” но скоро зависает, а через slave.jar не может и стартануть.
Пробовал включить сервис Interactive Services Detection и запускать сервис Томкат от пользователя, но окно браузера так и не появилось.


(Дмитрий Кочнев) #13

Всё таки ура, после перезагрузки Interactive Services Detection стал предлагать посмотреть на тот экран где тесты работают.
Всем спасибо.