Интеграция с Azure DevOps
Эта страница описывает, как настроить ТестОпс и Azure DevOps в проекте, который использует Azure Pipelines для запуска тестов.
Как и все другие CI-интеграции в ТестОпс, это двусторонняя связь:
- Джоба в пайплайне Azure использует allurectl для отправки своего статуса и результатов тестов в ТестОпс.
- ТестОпс использует API Azure DevOps для запуска новых пайплайнов, при необходимости передавая тест-план.
После остановки пайплайна соответствующий запуск в ТестОпс может быть закрыт вручную или автоматически в соответствии с настройками автоматического закрытия.
Чтобы добавить поддержку ТестОпс в ваш пайплайн Azure DevOps:
- Включите отправку данных из Azure DevOps.
- Включите запуск пайплайна Azure.
- Параметризуйте джобы (если необходимо).
1. Включите отправку данных из Azure DevOps
Чтобы Azure DevOps отправлял статусы пайплайнов и результаты тестов в ТестОпс, вам нужно создать токен аутентификации в ТестОпс, добавить токен в Azure DevOps и изменить сам пайплайн.
Затем запустите и проверьте пайплайн, чтобы убедиться, что все работает.
1.1. Создайте токен в ТестОпс
-
В ТестОпс нажмите на ваш аватар и перейдите в API-токены.
-
Нажмите + Токен.
-
Придумайте название для токена (например, «Токен для Azure DevOps») и нажмите Создать.
ТестОпс случайным образом сгенерирует токен и отобразит его в модальном окне.
-
Нажмите значок Копировать, чтобы скопировать токен в буфер обмена. Этот токен понадобится вам на следующем шаге.
1.2. Укажите токен в Azure DevOps
-
В Azure DevOps перейдите в Pipelines и выберите нужный пайплайн.
-
В правом верхнем углу нажмите Edit.
-
В правом верхнем углу нажмите Variables.
-
Нажмите New variable или +. В появившемся окне заполните поля:
- Name — ALLURE_TOKEN.
- Value — API-токен, который вы получили на шаге 1.1.
- Keep this value secret — должно быть отмечено.
- Let users override this value when running this pipeline — не должно быть отмечено.
Нажмите OK.
-
Нажмите + снова. В появившемся окне заполните поля:
- Name — ALLURE_JOB_RUN_ID.
- Value — должно быть пустым.
- Keep this value secret — не должно быть отмечено.
- Let users override this value when running this pipeline — должно быть отмечено.
Нажмите OK.
-
Нажмите Save, чтобы применить изменения и закрыть окно.
1.3. Измените пайплайн
Внесите следующие изменения в файл azure-pipelines.yml в вашем репозитории. Вы можете сделать это либо в локальной директории, либо в редакторе Azure.
-
В начале раздела steps добавьте новый шаг, который загружает инструмент allurectl и делает его исполняемым.
-
В шаге, который запускает тесты, добавьте или расширьте блок
env
. Он должен включать следующие переменные:- ALLURE_ENDPOINT — URL-адрес сервера ТестОпс.
- ALLURE_PROJECT_ID — ID проекта ТестОпс.
- ALLURE_RESULTS — путь к директории с результатами тестов, например, build/allure-results. Если в вашем проекте несколько директорий с результатами тестов, вы можете разделить их запятыми или использовать шаблон с подстановочными символами, например, modules/*/build/allure-results.
- ALLURE_TOKEN — $(ALLURE_TOKEN).
-
Оберните команду, которая запускает тесты, в команду
./allurectl watch
.
Пример
Предположим, у нас есть проект на Java с файлом azure-pipelines.yml такого вида:
steps:
- script: ./gradlew clean test
displayName: Run tests
С интеграцией ТестОпс файл будет выглядеть примерно так:
steps:
- bash: curl -fsSL https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64 -o allurectl && chmod +x allurectl
displayName: Download allurectl
- script: ./allurectl watch -- ./gradlew clean test
displayName: Run tests
env:
ALLURE_ENDPOINT: https://demo.testops.cloud
ALLURE_PROJECT_ID: 1
ALLURE_RESULTS: build/allure-results
ALLURE_TOKEN: $(ALLURE_TOKEN)
1.4. Запустите и проверьте пайплайн
-
В Azure DevOps откройте проект и перейдите к запуску пайплайна, вызванному последним коммитом.
В качестве альтернативы вы можете запустить новый пайплайн вручную.
-
Если выполнение пайплайна еще не завершено, дождитесь его завершения.
-
В деталях выполнения пайплайна нажмите на джобу, которая запускает тесты.
Ближе к концу ее лога должна быть ссылка на отчет о тестировании в ТестОпс. Убедитесь, что она присутствует и работает.
-
В запуске в ТестОпс откройте результаты одного теста.
Внизу страницы должна быть ссылка на пайплайн Azure. Убедитесь, что она присутствует и работает.
2. Включите запуск пайплайна Azure
На стороне ТестОпс интеграция с Azure DevOps должна быть настроена на двух уровнях.
Сначала администратор должен указать URL-адрес Azure DevOps.
Затем владелец проекта должен создать токен аутентификации в Azure DevOps, добавить его в ТестОпс и настроить джобу в ТестОпс.
2.1. Укажите URL-адрес Azure DevOps в ТестОпс
-
Войдите в ТестОпс, используя учетную запись администратора.
-
Перейдите в раздел Администрирование → Интеграции.
-
Нажмите + Добавить интеграцию в правом верхнем углу экрана.
-
В появившемся окне выберите Azure DevOps Server.
-
Заполните поля:
- Название — название, которое поможет вам распознать интеграцию, например, Azure DevOps production.
- Endpoint — URL-адрес организации Azure DevOps, например, https://dev.azure.com/my-organization/.
-
Нажмите Добавить интеграцию.
2.2. Создайте токен в Azure DevOps
-
В Azure DevOps нажмите на значок User settings рядом с вашим аватаром и выберите Personal access tokens.
-
Нажмите New Token.
-
В появившемся окне заполните поля:
- Name — название, которое поможет вам распознать токен, например, Токен для ТестОпс.
- Organization — организация Azure DevOps, которая содержит проект, который вы хотите интегрировать с ТестОпс.
- Expiration — как долго токен должен оставаться действительным. После этой даты интеграция перестанет работать, и вам нужно будет создать новый токен для продолжения использования интеграции.
- Scopes — Custom defined.
-
Внизу окна нажмите Show all scopes.
-
Выберите следующие права доступа:
- Build — Read and execute.
- Work Items — Read, write & manage.
- Variable Groups — Read.
-
Нажмите Create.
Новый токен станет временно видимым. Скопируйте его. Этот токен понадобится вам на следующем шаге.
2.3. Добавьте токен в проект ТестОпс
-
Откройте ваш проект в ТестОпс.
-
Перейдите в раздел Настройки → Интеграции.
-
В разделе Доступные интеграции найдите интеграцию Azure DevOps и нажмите Добавить интеграцию рядом с ней.
-
В появившемся окне заполните поля:
- Имя пользователя (email) — email, который вы используете для входа в Azure DevOps.
- Azure token — API-токен, который вы получили на шаге 2.2.
-
Нажмите Проверить соединение. Если учетные данные верны, через несколько секунд появится сообщение «Соединение установлено».
-
Нажмите Добавить интеграцию, чтобы сохранить настройки.
2.4. Настройте джобу в ТестОпс
-
Откройте ваш проект в ТестОпс.
-
Перейдите в раздел Джобы.
Страница должна содержать новую джобу, автоматически добавленную и настроенную во время запуска на шаге 1.4.
-
Нажмите
⋯
напротив джобы, затем выберите Настроить. -
В появившемся окне отредактируйте поля:
- Сервер сборки — название интеграции, которую вы добавили на шаге 2.1.
- Джоба может быть использована для запуска тестов — если отмечено, пользователи смогут запускать эту джобу из ТестОпс.
- Параметры — параметры, которые должны быть переданы в Azure DevOps через переменные окружения, см. Окружения.
-
Нажмите Отправить.
3. Параметризуйте джобы
При запуске пайплайнов Azure можно указывать переменные. ТестОпс интегрирует эту функцию с собственной концепцией Окружения, что позволяет вам как задавать параметры для новых джоб, так и видеть параметры, установленные для джоб, запущенных вне ТестОпс.
Сначала администратор должен объявить глобальные названия для параметров.
Затем владелец проекта должен настроить маппинг параметров в настройках проекта и в настройках джобы в ТестОпс.
Наконец, переменные также нужно добавить в пайплайн в Azure DevOps.
Если в репозитории вашего проекта несколько веток, обязательно создайте переменную окружения Branch в ТестОпс и передайте ее в вашу джобу. Это специальное имя, которое укажет Azure DevOps, какую из веток нужно использовать.
3.1. Добавьте глобальные названия параметров
-
Войдите в ТестОпс, используя учетную запись администратора.
-
Перейдите в раздел Администрирование → Окружения.
-
Для каждого параметра, которой вы хотите добавить:
- Нажмите + Создать.
- Введите название нового параметра.
- Нажмите Отправить.
3.2. Сопоставьте параметры с переменными окружения
-
Откройте ваш проект в ТестОпс.
-
Перейдите в раздел Настройки → Окружение.
-
Для каждого параметра, которой вы хотите использовать:
- Нажмите + Создать, если параметра нет в списке. Если параметр уже существует, нажмите значок Редактировать рядом с его названием.
- В поле Ключ укажите название переменной окружения.
- В поле Переменная окружения выберите глобальное название параметра из шага 3.1.
- Нажмите Отправить.
3.3. Добавьте параметры в джобу
-
Откройте ваш проект в ТестОпс.
-
Перейдите в раздел Джобы.
-
Найдите джобу, которую вы хотите параметризовать. Нажмите
⋯
напротив джобы, затем выберите Настроить.Появится окно настроек джобы, содержащее раздел Параметры.
-
Для каждого параметра, который вы хотите добавить, нажмите Добавить и заполните поля:
- Название — название переменной окружения (такое же, как Ключ из шага 3.2).
- Значение — значение по умолчанию, которое должно использоваться, если не указано для конкретного запуска.
- Переменная окружения — переменная окружения из шага 3.1.
-
Нажмите Отправить.
3.4. Установите значения по умолчанию в пайплайне
-
В Azure DevOps пер ейдите в Pipelines и выберите нужный пайплайн.
-
В правом верхнем углу нажмите Edit.
-
В правом верхнем углу нажмите Variables.
-
Для каждого параметра, который вы хотите добавить, нажмите + и заполните поля:
- Name — название переменной окружения (такое же, как Ключ из шага 3.2 и Название из шага 3.3).
- Value — значение по умолчанию, которое должно использоваться, если не указано для конкретного запуска (такое же, как Значение из шага 3.3).
- Keep this value secret — не должно быть отмечено.
- Let users override this value when running this pipeline — должно быть отмечено.
Нажмите OK, чтобы завершить редактирование новой переменной.
-
Нажмите Save, чтобы применить изменения и закрыть окно.