Интеграция с Azure DevOps
В этой инструкции описывается, как настроить ТестОпс и Azure DevOps в проекте, который использует Azure Pipelines для запуска тестов.
Примечание
Чтобы настроить или удалить любую интеграцию ТестОпс с внешней системой, необходима глобальная роль «Администратор» в инстансе ТестОпс и, как правило, права администратора инстанса внешней системы.
Интеграция с Azure DevOps позволяет настроить двустороннюю связь:
- Джоба в пайплайне Azure использует allurectl для отправки своего статуса и результатов тестов в ТестОпс.
- ТестОпс использует API Azure DevOps для запуска новых пайплайнов, при необходимости передавая тест-план.
После остановки пайплайна соответствующий запуск в ТестОпс можно закрыть вручную или автоматически в соответствии с настройками автоматического закрытия.
Настройка интеграции
Чтобы настроить интеграцию с Azure DevOps:
Настройте связь от ТестОпс к Azure DevOps:
- Создайте токен в Azure DevOps.
- Подключите интеграцию с 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.
Новый токен станет временно видимым. Скопируйте и сохраните токен в безопасном месте, он понадобится для подключения интеграции с Azure DevOps в ТестОпс.
1.2. Подключите интеграцию с Azure DevOps на уровне инстанса ТестОпс
Перейдите в ваш инстанс ТестОпс.
Перейдите в раздел Администрирование → Интеграции.
Нажмите Добавить интеграцию.
В списке доступных интеграций выберите Azure DevOps.
Заполните поля:
Название подключения — введите название, которое поможет вам распознать интеграцию (например, Azure DevOps production).
Endpoint — введите URL-адрес вашей организации Azure DevOps (например, https://dev.azure.com/my-organization/).
Тип учетных данных — нажмите на выпадающий список и выберите тип учетных данных Azure DevOps, который будет поддерживать интеграция:
- Все (глобальные и проектные) — интеграция может работать как с глобальными, так и с проектными учетными данными;
- Только глобальные — интеграция может работать только с глобальными учетными данными;
- Только проектные — интеграция может работать только с проектными учетными данными.
Примечание
Подробнее о поддерживаемых типах учетных данных см. Интеграции с внешними системами → Глобальные и проектные учетные данные
Если ваш инстанс Azure DevOps использует самоподписанный SSL-сертификат, уберите галочку напротив Проверка SSL-сертификата.
Если интеграция может работать с глобальными учетными данными Azure DevOps, в секции Глобальные учетные данные:
- Введите электронную почту нужной учетной записи в Azure DevOps.
- Введите токен, который вы сохранили на шаге 1.1.
Нажмите Добавить подключение.
1.3. Добавьте настроенное подключение к Azure DevOps в проект ТестОпс
Чтобы добавить настроенное подключение к Azure DevOps в нужный проект ТестОпс, воспользуйтесь одним из способов:
В ТестОпс перейдите в раздел Администрирование → Интеграции.
В списке настроенных интеграций найдите и откройте интеграцию с Azure DevOps.
В списке настроенных подключений найдите и откройте ваше подключение к Azure DevOps.
Нажмите Добавить в проект.
В списке доступных проектов выберите нужный проект ТестОпс.
Если интеграция может работать и с глобальными, и с проектными учетными данными Azure DevOps, в поле Тип учетных данных нажмите на выпадающий список и выберите вариант, который будет использоваться в проекте:
- Проектные — использовать проектные учетные данные для подключения к Azure DevOps;
- Глобальные — использовать глобальные учетные данные для подключения к Azure DevOps.
Если интеграция будет работать с проектными учетными данными Azure DevOps, в секции Проектные учетные данные:
- Введите электронную почту нужной учетной записи в Azure DevOps.
- Введите токен, который вы сохранили на шаге 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.
Напротив добавленной джобы нажмите
⋯→ Настроить.В появившемся окне отредактируйте поля:
- Название — введите название, которое поможет вам распознать джобу.
- Сервер сборки — нажмите на выпадающий список и выберите название подключения к Azure DevOps, которое вы добавили на шаге 1.2.
- Джоба может быть использована для запуска тестов — поставьте галочку, чтобы пользователи могли запускать джобу из ТестОпс.
Нажмите Отправить.
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.
В списке настроенных подключений найдите ваше подключение к Azure DevOps и убедитесь, что оно не используется в проектах ТестОпс.
Если интеграция подключена к проектам, удалите ее из них. Для этого откройте карточку подключения к Azure DevOps и напротив названия каждого проекта нажмите
⋯→ Удалить из проекта → Да, удалить.Напротив нужного подключения к Azure DevOps нажмите
⋯→ Удалить → Да, удалить.

