Как запустить интеграционные тесты с параметризованной сборкой для существующих заданий jenkins?

#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 перед выполнением его действий и так далее.

Схема будет выглядеть так :

введите описание изображения здесь