#jenkins #selenium-webdriver #cucumber-java
#дженкинс #selenium-webdriver #cucumber-java
Вопрос:
У меня есть 4 связанных задания freestyle в Jenkins (от A до D), которые используются для непрерывной доставки. В настоящее время связанные задания начинаются с задания A всякий раз, когда в мой репозиторий Git вносится изменение.
Последнее задание (задание D) запускает мои тесты Selenium по умолчанию в браузере firefox.. но теперь я планирую выполнять те же тесты в браузере Chrome каждую ночь.. Запутанная часть заключается в том, как настроить задания для выполнения тестов в браузере Chrome
Например: (цепочка заданий)
A —> B —> C —> D
В моем случае я хотел бы запускать задание A каждую ночь, но я хочу иметь возможность указывать целевой браузер в качестве параметра при запуске задания D.
Любая помощь очень ценится!!
Комментарии:
1. Вы имеете в виду, что A / B / C / D на самом деле являются этапами вашего конвейерного задания?
2. ДА.. эти проекты необходимы для конвейера!!
3. Я не уверен, что понимаю, когда вы говорите о конвейерах, вы имеете в виду, что вы объединяете 4 разных задания Jenkins, freestyle, или вы на самом деле используете одно и только одно задание конвейера Jenkins , т. Е. Написанное с помощью Groovy-кода?
4. извините за это .. я имею в виду 4 разных задания freestyle как часть конвейера
5. Хорошо, конвейеры имеют очень специфическое значение в контексте Jenkins, в вашем случае у вас нет «конвейеров», скажем, у вас есть 4 разных задания, соединенных вместе для создания рабочего процесса.
Ответ №1:
Вам каким-то образом нужно передать целевой браузер в качестве параметра для вашего задания D.
Передача параметра браузера из A в D
Вы можете добавить два задания перед заданием A, которые будут реагировать на ваши различные конфигурации. Допустим, вы добавляете задания A1
и A2
:
Задание A1
будет настроено для вашего Git pushes
и запустит задание A
с параметром targetBrowser = firefox
, а задание A2
будет настроено для ваших ночных сборок и запустит задание A
с параметром targetBrowser = chrome
. Затем вы должны передавать этот параметр браузера для каждого задания до задания D, которое будет использовать этот параметр при запуске тестов Selenium.
Итак, у вас было бы :
Движение снизу вверх вместо снизу вверх
Вместо запуска из задания A вы можете запускать запуск из задания D и вызывать предыдущее задание каждый раз перед выполнением вашего действия.
Задание D1
будет настроено для вашего Git pushes
, а задание D2
будет настроено для ваших ночных сборок. Оба будут выполнять ваши тесты Selenium (D1 для Firefox, D2 для Chrome), но перед этим они вызовут задание C, которое, в свою очередь, вызовет задание B перед выполнением его действий и так далее.
Схема будет выглядеть так :