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

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

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

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

Спасибо.

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

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

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

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

В 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.При выполнении тестов открыть окно от имени этого процесса

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

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

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

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

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

1 лайк

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

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

всё зависит от операционной системы. начиная с версии windows nt 6.0 сервисы запускаются в отдельной сессии.
описывается здесь: Impact of Session 0 Isolation on Services and Drivers in Windows - Windows 10 hardware dev | Microsoft Learn
и решение вроде бы тоже имеется.

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

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

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