Задание Jenkins не выполняется на подчиненном, пока пользователь не войдет в подчиненную виртуальную машину - PullRequest
1 голос
/ 25 марта 2020

Настройка:

  1. Ведущий включен Windows VM "A"
  2. Ведомый включен Windows VM "B"
  3. Ведомый подключается к мастеру использование java -jar agent.jar -jnlpUrl http://path/to/this/slave-agent.jnlp -secret thisisasecret -workDir "C: \ my-work-dir"
  4. Задание Jenkins выполняет пакетную команду , Команда запускает консоль Nunit, которая выполняет тесты селена

Выполняемое мной задание - это сценарий селена, который открывает экземпляр chrome в «B»

Это что я делаю, когда это работает:

  1. Войдите в систему "B", используя windows RDP
  2. Откройте Дженкинс и активируйте задание Селен
  3. Я вижу Задание выполняется на "B" и завершается без проблем в течение примерно 4 минут

Это когда оно НЕ РАБОТАЕТ:

  1. Я НЕ авторизируюсь на "B"
  2. Откройте jenkins и запустите задание селена
  3. Интерфейс Jenkins показывает, что задание выполняется, но выполняется бесконечно

Теперь, если я войду в «B», пока задание все еще выполняется, как только я вхожу, я вижу, что появляется cmd chromedriver, запускается экземпляр chrome, задание запускается и завершается без проблем.

Кто-нибудь знает, что может быть причиной этого? Спасибо!

1 Ответ

0 голосов
/ 25 марта 2020

У нас были тесты, которые прошли только когда я вошел в систему на машине. Оказалось, что для теста нужен интерактивный рабочий стол. Чтобы сохранить сеанс, вы можете создать файл bat, который можно использовать при выходе из системы, чтобы сеанс оставался интерактивным.

tscon %sessionname% /dest:console

Ссылка:
https://www.automatetheplanet.com/visual-studio-test-agents-cleaning-scripts/

...