Настройка запуска автотестов в Jenkins CI с помощью вебхука
Узнайте об интеграциях и настройках Test IT
Информация обо всех интеграциях и настройках Test IT доступна на странице Приложения в верхней навигационной панели.
Настройка включает в себя следующие этапы:
- Подключение вашего репозитория к Jenkins (настройка пайплайнов). Подробности смотрите в официальной документации Jenkins.
- Подключение адаптера Test IT или Test IT CLI
- Настройка Jenkins
- Настройка вебхука в Test IT
- Проверка интеграции (запуск автотестов)
Настройка Jenkins
Создание параметров
- Войдите в Jenkins.
- Перейдите в Settings > General.
- Добавьте новые параметры с наименованиями следующих переменных окружения:
TEST_RUN_ID
PRIVATE_TOKEN
URL
Получение токена авторизации
- Перейдите в Профиль > Статус.
- Скопируйте содержимое поля Jenkins User ID.
- Перейдите в Профиль > Настроить.
- Скопируйте API Token.
- Закодируйте строку
JENKINS_USER_ID:API_TOKEN
методом Base64. Получившаяся строка — ваш токен авторизации Jenkins.
Настройка вебхука в Test IT
- Откройте проект.
- В навигационном меню слева нажмите Вебхуки.
- Нажмите Создать.
- Укажите название вебхука и выберите тип события — Запуск автотестов.
- В поле URL вставьте строку
http://{DOMAIN}/job/{ITEM_NAME}/buildWithParameters
, гдеDOMAIN
это адрес вашей системы Jenkins, аITEM_NAME
— наименование Jenkins Item. Убедитесь, что тип передаваемого запроса выставлен как POST. - В шаге Параметры URL установите следующие передаваемые параметры:
- Ключ:
testRunId
, Значение:$TEST_RUN_ID
. - Ключ:
testProjectId
, Значение:$PROJECT\_ID
.
- Ключ:
- В шаге Заголовки HTTP установите следующий параметр:
- Ключ:
Authorization
, Значение:Basic {AUTHORIZATION_TOKEN}
, гдеAUTHORIZATION_TOKEN
— токен авторизации, сгенерированный на этапе настройки Jenkins.
- Ключ:
- В шаге Тело HTTP в поле Тип запроса выберите Не отправлять контекст.
- Нажмите Сохранить.
Проверка интеграции
- Запустите автотесты в Jenkins.
- Перейдите к логам, нажав Посмотреть журнал.
В логах можно увидеть результирующий запрос и ответ от внешней системы:
Запрос:
Method: POST
RequestUrl: 'http://jenkins.mycompanyname.ru/job/testit-webinar
/buildWithParameters?testRunId=a62172c1-f067-4006-97c0-
e93aa8e8f3b5&testProjectId=301'
Version: 2.0
Content: <null>
Headers: { Authorization: Basic ****** }
Ответ:
StatusCode: 201
ReasonPhrase: 'Created'
Version: 1.1
Content: System.Net.Http.HttpConnection+HttpConnectionResponseContent
Headers:
{
Date: Fri, 26 Jul 2019 16:32:34 GMT
X-Content-Type-Options: nosniff
Location: http://jenkins.mycompanyname.ru/queue/item/1777974/
Server: Jetty(9.4.z-SNAPSHOT)
Content-Length: 0
}
В Jenkins запустилась сборка проекта с полученными параметрами.