Интеграция с Azure DevOps
В этой инструкции описывается, как настроить ТестОпс и Azure DevOps в проекте, который использует Azure Pipelines для запуска тестов.
Примечание
Чтобы настроить или удалить интеграцию в ТестОпс, вы должны иметь доступ к разделам:
- Администрирование — необходимы права администратора инстанса;
- Настройки в конкретном проекте — необходима роль владельца этого проекта.
Интеграция с Azure DevOps позволяет настроить двустороннюю связь:
- Джоба в пайплайне Azure использует allurectl для отправки своего статуса и результатов тестов в ТестОпс.
- ТестОпс использует API Azure DevOps для запуска новых пайплайнов, при необходимости передавая тест-план.
После остановки пайплайна соответствующий запуск в ТестОпс можно закрыть вручную или автоматически в соответствии с настройками автоматического закрытия.
Настройка интеграции
Чтобы настроить интеграцию с Azure DevOps:
Настройте связь от ТестОпс к Azure DevOps:
Создайте токен в Azure DevOps.
На уровне инстанса ТестОпс добавьте интеграцию с Azure DevOps, указав:
- название интеграции;
- URL-адрес Azure DevOps.
На уровне инстанса или проекта ТестОпс включите добавленную интеграцию для проекта, указав созданный токен из Azure DevOps.
Настройте связь от Azure DevOps к ТестОпс:
- Создайте API-токен в ТестОпс.
- В Azure DevOps укажите созданный API-токен из ТестОпс.
- Измените пайплайн в Azure DevOps.
- Запустите и проверьте пайплайн в Azure DevOps.
- Настройте созданную джобу в ТестОпс.
Параметризируйте джобу в ТестОпс и пайплайн в Azure DevOps (если необходимо).
1. Настройте связь от ТестОпс к Azure DevOps
1.1. Создайте токен в 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.
Новый токен станет временно видимым. Скопируйте и сохраните токен в безопасном месте, он понадобится для настройки интеграции в проекте ТестОпс.
1.2. Добавьте интеграцию с Azure DevOps в ТестОпс
Перейдите в ваш инстанс ТестОпс.
Перейдите в раздел Администрирование → Интеграции.
Нажмите + Добавить интеграцию в правом верхнем углу.
В списке доступных интеграций выберите Azure DevOps Server.
Заполните поля:
- Название — название, которое поможет вам распознать интеграцию, например, Azure DevOps production.
- Endpoint — URL-адрес организации Azure DevOps, например, https://dev.azure.com/my-organization/.
Нажмите Добавить интеграцию.
1.3. Включите интеграцию для проекта ТестОпс
Чтобы включить интеграцию в нужном проекте ТестОпс, воспользуйтесь одним из способов:
Перейдите в раздел Администрирование → Интеграции.
В списке настроенных интеграций найдите и откройте вашу интеграцию с Azure DevOps.
Перейдите на вкладку Проекты.
Справа от поля поиска нажмите
+.В выпадающем списке Проект выберите нужный проект ТестОпс.
В появившемся окне заполните поля:
- Имя пользователя (email) — электронная почта, которую вы используете для входа в Azure DevOps.
- Токен Azure — токен, который вы сохранили на шаге 1.1.
Нажмите Проверить соединение. Если учетные данные верны, через несколько секунд появится сообщение «Соединение установлено».
Нажмите Добавить интеграцию.
2. Настройте связь от Azure DevOps к ТестОпс
Выполните шаги ниже, чтобы настроить вторую часть двусторонней связи: отправку статусов пайплайнов и результатов тестов из Azure DevOps в ТестОпс.
2.1. Создайте токен в ТестОпс
В ТестОпс нажмите на ваш аватар и перейдите в раздел API-токены.
Нажмите + Токен.
Введите название токена, которое поможет вам распознать интеграцию, например, Токен для Azure DevOps.
Нажмите Создать.
ТестОпс сгенерирует токен и отобразит его в модальном окне.
Нажмите иконку Копировать, чтобы скопировать токен в буфер обмена.
Cохраните токен в безопасном месте, он понадобится для настройки интеграции в Azure DevOps.
2.2. Укажите токен в Azure DevOps
В Azure DevOps перейдите в Pipelines и выберите нужный пайплайн.
В правом верхнем углу нажмите Edit.
В правом верхнем углу нажмите Variables.
Нажмите New variable или
+. В появившемся окне заполните поля:- Name — ALLURE_TOKEN.
- Value — API-токен, который вы сохранили на шаге 2.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.
2.3. Измените пайплайн в Azure DevOps
В Azure DevOps откройте репозиторий, для которого вы настраиваете интеграцию.
Откройте файл azure-pipelines.yml.
В начале блока
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 выглядит следующим образом:
yaml
steps:
- script: ./gradlew clean test
displayName: Run testsЧтобы настроить интеграцию с ТестОпс, вам необходимо изменить файл по примеру ниже:
yaml
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://testops.example.com
ALLURE_PROJECT_ID: 1
ALLURE_RESULTS: build/allure-results
ALLURE_TOKEN: $(ALLURE_TOKEN)2.4. Запустите и проверьте пайплайн в Azure DevOps
В Azure DevOps откройте проект, для которого вы настраиваете интеграцию.
Перейдите к запуску пайплайна, инициированному последним коммитом.
Примечание
Если у вас отключен автоматический запуск пайплайнов после коммитов, выполните запуск вручную.
Дождитесь, когда завершится выполнение пайплайна.
В деталях выполнения пайплайна нажмите на джобу, которая запускает тесты.
Ближе к концу лога найдите ссылку на запуск в ТестОпс.

Перейдите по ссылке в ТестОпс и откройте результаты одного из тестов.
В карточке результата теста в левом нижнем углу найдите ссылку на пайплайн Azure DevOps.

Перейдите по ссылке в Azure DevOps, чтобы убедиться, что она работает корректно.
2.5. Настройте джобу в ТестОпс
Перейдите в ваш проект ТестОпс.
Перейдите в раздел Джобы.
Страница должна содержать новую джобу, автоматически добавленную во время запуска на шаге 2.4.
Напротив добавленной джобы нажмите
⋯→ Настроить.В появившемся окне отредактируйте поля:
- Сервер сборки — название интеграции, которую вы добавили на шаге 1.2.
- Джоба может быть использована для запуска тестов — если отмечено, пользователи смогут запускать эту джобу из ТестОпс.
- Параметры — параметры, которые должны быть переданы в Azure DevOps через переменные окружения (подробнее см. Окружение).

Нажмите Отправить.
3. Параметризируйте джобу в ТестОпс и пайплайн в Azure DevOps
При запуске пайплайнов в Azure DevOps можно указывать переменные. ТестОпс поддерживает эту функциональность через концепцию Окружение, которая позволяет задавать параметры для новых джоб и просматривать параметры из пайплайнов, запущенных со стороны CI-системы.
Важно
Если в репозитории вашего проекта несколько веток, обязательно создайте в ТестОпс переменную окружения Branch и передайте ее в вашу джобу. Это специальное имя, которое укажет Azure DevOps, какую из веток нужно использовать.
3.1. Добавьте глобальные переменные окружения в ТестОпс
Перейдите в ваш инстанс ТестОпс.
Перейдите в раздел Администрирование → Окружения.
Для каждой переменной, которую вы хотите добавить:
- Нажмите + Создать.
- Введите название переменной.
- Нажмите Отправить.

3.2. Сопоставьте переменные из пайплайна с глобальными переменными окружения в ТестОпс
Перейдите в ваш проект ТестОпс.
Перейдите в раздел Настройки → Окружение.
Для каждой переменной, которую вы хотите использовать:
- Нажмите + Создать, если переменной нет в списке. Если переменная уже существует, напротив ее названия нажмите иконку Редактировать.
- В поле Ключ укажите название переменной окружения.
- В поле Переменная окружения выберите глобальное название из шага 3.1.
- Нажмите Отправить.

3.3. Добавьте параметры в джобу ТестОпс
Перейдите в раздел Джобы.
Напротив джобы, которую вы хотите параметризировать, нажмите
⋯→ Настроить.Для каждой переменной, которую вы хотите добавить, в секции Параметры нажмите Добавить и заполните поля:
- Название — название переменной окружения (такое же, как Ключ из шага 3.2).
- Значение — значение по умолчанию, которое должно использоваться, если не указано другое значение для конкретного запуска.
- Переменная окружения — глобальное название переменной в ТестОпс из шага 3.1.

Нажмите Отправить.
3.4. Установите значения по умолчанию в пайплайне Azure DevOps
В 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.
Удаление интеграции
Вы можете удалить интеграцию с Azure DevOps двумя способами — на уровне всего инстанса ТестОпс (через раздел Администрирование) или на уровне отдельного проекта (через настройки проекта).
Важно
Последствия удаления интеграции:
Удаление на уровне инстанса — связь с инстансом Azure DevOps будет удалена из всех джоб ТестОпс, которые относятся к интеграции:
- Иконки для запуска и обновления этих джоб в разделе Джобы станут неактивными.
- Результаты запусков тестов из Azure DevOps не будут отправляться в инстанс ТестОпс.
Удаление на уровне проекта — связь с инстансом Azure DevOps будет удалена из джобы ТестОпс, которая относится к интеграции и находится в этом проекте:
- Иконки для запуска и обновления этой джобы в разделе Джобы останутся активными.
- ТестОпс не сможет запустить тесты из проекта на стороне Azure DevOps. После закрытия запуска результаты этих тестов получат статус Неизвестный.
- Результаты запусков тестов из Azure DevOps не будут отправляться в проект ТестОпс.
Перейдите в раздел Администрирование → Интеграции.
В списке настроенных интеграций найдите и откройте вашу интеграцию с Azure DevOps.
Перейдите на вкладку Проекты и убедитесь, что интеграция не используется в проектах ТестОпс.
Если интеграция подключена к проектам, удалите ее из них. Для этого напротив названия каждого проекта нажмите иконку корзины → Удалять.
Перейдите на вкладку Конфигурация.
Нажмите Удалить интеграцию.
Нажмите Удалить.

