Интеграция с Azure DevOps
Эта страница описывает, как настроить ТестОпс и Azure DevOps в проекте, который использует Azure Pipelines для запуска тестов.
Как и все другие интеграции CI для ТестОпс, это включает двустороннюю связь.
- Задача в Azure pipeline будет использовать allurectl для отправки своего статуса и результатов тестов в ТестОпс.
- ТестОпс будет использовать API Azure DevOps для запуска новых pipeline, при необходимости передавая тест-план.
После остановки выполнения pipeline соответствующий запуск в ТестОпс может быть закрыт вручную или автоматически в соответствии с Политикой автоматического закрытия.
Чтобы включить поддержку ТестОпс в вашем Azure DevOps pipeline:
- включите отправку данных из Azure DevOps,
- включите запуск Azure pipeline,
- параметризуйте джобы (если необходимо).
1. Включите отправку данных из Azure DevOps
Чтобы Azure DevOps отправлял статусы выполнения и результаты тестов в ТестОпс, вам нужно создать токен аутентификации в ТестОпс, добавить токен в Azure DevOps и изменить сам pipeline.
Затем запустите и проверьте pipeline, чтобы убедиться, что все работает.
1.1. Создайте токен в ТестОпс
-
В ТестОпс нажмите на свой аватар и перейдите в Ваш профиль.
-
В разделе API токены нажмите Создать.
-
Введите Имя токена (например, «Токен для Azure DevOps»), затем нажмите Отправить.
-
В появившемся диалоговом окне нажмите значок Копировать, чтобы скопировать токен в буфер обмена.
Этот токен понадобится вам на следующем шаге.
1.2. Укажите токен в Azure DevOps
-
В Azure DevOps перейдите в Pipelines и выберите нужный pipeline.
-
В правом верхнем углу нажмите Изменить.
-
В правом верхнем углу нажмите Переменные.
-
Нажмите Новая переменная или +. В появившемся диалоговом окне заполните поля:
- Имя — «ALLURE_TOKEN».
- Значение — API токен, который вы получили на шаге 1.1.
- Сохранить это значение в секрете — должно быть отмечено.
- Разрешить пользователям переопределять это значение при запуске этого pipeline — не должно быть отмечено.
Нажмите ОК.
-
Нажмите + снова. В появившемся диалоговом окне заполните поля:
- Имя — «ALLURE_JOB_RUN_ID».
- Значение — должно быть пустым.
- Сохранить это значение в секрете — не должно быть отмечено.
- Разрешить пользователям переопределять это значение при запуске этого pipeline — должно быть отмечено.
Нажмите ОК.
-
Нажмите Сохранить, чтобы применить изменения и закрыть диалоговое окно.
1.3. Измените pipeline
Внесите следующие изменения в файл 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. Запустите и проверьте pipeline
-
В Azure DevOps откройте проект и перейдите к запуску pipeline, вызванному последним коммитом.
В качестве альтернативы, запустите новый pipeline вручную.
-
Если выполнение pipeline еще не завершено, дождитесь его завершения.
-
В деталях выполнения pipeline нажмите на задачу, которая запускает тесты.
Ближе к концу ее лога должна быть ссылка на отчет о тестировании в ТестОпс. Убедитесь, что она присутствует и работает.
-
В отчете о тестировании в ТестОпс откройте результаты одного теста.
Внизу страницы должна быть ссылка обратно на Azure pipeline. Убедитесь, что она присутствует и работает.
2. Включите запуск Azure pipeline
На стороне ТестОпс интеграция с 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 нажмите на значок Настройки пользователя рядом с вашим аватаром и выберите Личные токены доступа.
-
Нажмите Новый токен.
-
В появившемся диалоговом окне заполните поля:
- Имя — имя, которое поможет вам распознать токен, например, «Токен для ТестОпс».
- Организация — организация Azure DevOps, которая содержит проект, который вы хотите интегрировать с ТестОпс.
- Срок действия — как долго токен должен оставаться действительным. После этой даты интеграция перестанет работать, и вам нужно будет создать новый токен для продолжения использования интеграции.
- Права доступа — «Пользовательские».
-
Вни зу диалогового окна нажмите Показать все права доступа.
-
Выберите следующие права доступа:
- Build → Read and execute.
- Work items → Read, Write & Manage
- Variable Groups → Read
-
Нажмите Создать.
Новый токен станет временно видимым. Скопируйте его.
Этот токен понадобится вам на следующем шаге.
2.3. Добавьте токен в проект ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Настройки → Интеграции.
-
В разделе Доступные интеграции найдите интеграцию Azure DevOps и нажмите Добавить интеграцию рядом с ней.
-
В появившемся диалоговом окне заполните поля:
- Имя пользователя (email) — email, который вы используете для входа в Azure DevOps.
- API токен — API токен, который вы получили на шаге 2.2.
СоветПроверьте правильность учетных данных
Нажмите Проверить соединение. Через несколько мгновений должно появиться сообщение «Соединение установлено».
-
Нажмите Добавить интеграцию, чтобы закрыть диалоговое окно и сохранить настройки.
2.4. Настройте джоб в ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Джобы.
Страница должна содержать новую Джобу, автоматически добавленную и настроенную во время запуска на шаге 1.4.
-
Нажмите на меню с тремя точками джобы, затем выберите Настроить.
-
В появившемся диалоговом окне отредактируйте поля:
- Сервер сборки — имя интеграции, которую вы добавили на шаге 2.1.
- Джоба может быть использована для запуска тестов — если отмечено, пользователи смогут запускать эту джобу из ТестОпс.
- Параметры — параметры, которые должны быть переданы в Azure DevOps через переменные окружения, см. Окружение.
-
Нажмите Отправить.
3. Параметризуйте джобы
Запуски Azure pipeline могут принимать переменные. ТестОпс интегрирует эту функцию с собственной концепцией Окружение, что позволяет вам как задавать параметры для новых джоб, так и видеть параметры, установленные для джоб, запущенных вне ТестОпс.
Сначала администратор объявляет требуемые отображаемые имена для параметров глобально.
Затем владелец любого проекта настраивает сопоставление параметров в настройках проекта и в настройках джобы в ТестОпс.
Наконец, переменные также должны быть добавлены в pipeline в Azure DevOps.
Если в репозитории вашего проекта несколько веток, обязательно создайте переменную окружения «Branch» в ТестОпс и передайте ее в вашу джобу. Это специальное имя укажет Azure DevOps, какую из веток использовать.