Интеграция с Azure DevOps
Интеграция с Azure DevOps позволяет:
настроить связь с CI-системой Azure DevOps (Azure Pipelines):
настроить связь с таск-трекером Azure DevOps (Azure Boards) — добавлять ссылки на задачи Azure DevOps в тест-кейсы и запуски ТестОпс (см. Ссылки на задачи из таск-трекеров).
В настроенной интеграции с CI-системой Azure DevOps одна джоба ТестОпс соответствует одному пайплайну Azure, а один запуск джобы — одному запуску соответствующего пайплайна.
Примечание
Чтобы настроить или удалить любую интеграцию ТестОпс с внешней системой, необходима глобальная роль «Администратор» в инстансе ТестОпс и, как правило, права администратора инстанса внешней системы.
Настройка интеграции
Чтобы настроить интеграцию с Azure DevOps:
Настройте связь от ТестОпс к Azure DevOps:
- Создайте токен в Azure DevOps.
- Подключите интеграцию с Azure DevOps на уровне инстанса ТестОпс.
- Добавьте настроенное подключение к Azure DevOps в проект ТестОпс.
Настройте связь от Azure DevOps к ТестОпс:
- Создайте API-токен в ТестОпс.
- В Azure DevOps укажите созданный API-токен из ТестОпс.
- Измените пайплайн в Azure DevOps.
- Запустите и проверьте пайплайн в Azure DevOps.
- Настройте созданную джобу в ТестОпс.
Параметризируйте джобу в ТестОпс и пайплайн в Azure DevOps (если необходимо).
Важно
Если вы планируете использовать интеграцию:
- только с таск-трекером Azure DevOps — достаточно выполнить шаги только по настройке связи от ТестОпс к Azure DevOps;
- только с CI-системой Azure DevOps — необходимо выполнить все шаги по настройке интеграции;
- с таск-трекером и CI-системой Azure DevOps одновременно — необходимо выполнить все шаги по настройке интеграции.
1. Настройте связь от ТестОпс к Azure DevOps
1.1. Создайте токен в Azure DevOps
Перейдите в ваш инстанс Azure DevOps.
Рядом с вашим аватаром нажмите иконку User settings → Personal access tokens.
Нажмите New Token.
Заполните поля:
- Name — введите название токена, которое поможет вам распознать интеграцию (например, Токен для ТестОпс).
- Organization — нажмите на выпадающий список и выберите организацию Azure DevOps, которая содержит проект для интеграции с ТестОпс.
- Expiration (UTC) — нажмите на выпадающий список и выберите срок действия токена. После указанной даты интеграция перестанет работать. Чтобы возобновить ее работу, вам нужно будет создать новый токен.
- Scopes — выберите Custom defined.
В нижней части окна нажмите Show all scopes.
Поставьте галочки напротив прав доступа:
- в секции Build выберите Read and execute — если планируете использовать интеграцию с CI-системой Azure DevOps;
- в секции Variable Groups выберите Read — если планируете использовать интеграцию с CI-системой Azure DevOps;
- в секции Work Items выберите Read, write, & manage — если планируете использовать интеграцию с таск-трекером Azure DevOps.
Нажмите 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 → 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
После шага 2.2 убедитесь, что в 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.В правом верхнем углу нажмите Validate and save.
Нажмите Save.
Пример изменения пайплайна
Предположим, вы работаете с 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 перейдите к запуску пайплайна, инициированному последним коммитом.
Примечание
Если у вас отключен автоматический запуск пайплайнов после коммитов, выполните запуск вручную.
Дождитесь, когда завершится выполнение пайплайна.
В деталях выполнения пайплайна нажмите на джобу, которая запускает тесты.
Ближе к концу лога джобы найдите ссылку на запуск в ТестОпс (например,
Report link: https://testops.example.com/jobrun/23).Перейдите по ссылке в ТестОпс и откройте карточку результата одного из тестов.
В левом нижнем углу в секции Из запуска джобы найдите ссылку на пайплайн Azure DevOps.
Перейдите по ссылке в Azure DevOps, чтобы убедиться, что она работает корректно.
2.5. Настройте джобу в ТестОпс
Перейдите в ваш проект ТестОпс.
Перейдите в раздел Джобы.
В списке будет отображаться новая джоба, автоматически добавленная во время запуска на шаге 2.4.
Напротив добавленной джобы нажмите
⋯→ Настроить.Заполните поля:
- Название — введите название, которое поможет вам распознать джобу.
- Сервер сборки — нажмите на выпадающий список и выберите название подключения к Azure DevOps, которое вы добавили на шаге 1.2.
- Джоба может быть использована для запуска тестов — поставьте галочку, чтобы пользователи могли запускать джобу из ТестОпс.
Нажмите Отправить.
3. Параметризируйте джобу в ТестОпс и пайплайн в Azure DevOps
При запуске пайплайнов в Azure DevOps можно указывать переменные. ТестОпс поддерживает эту функциональную возможность через Окружение, которое позволяет задавать параметры для новых джоб ТестОпс и просматривать параметры из пайплайнов, запущенных со стороны Azure DevOps.
3.1. Добавьте глобальные переменные окружения в ТестОпс
Перейдите в ваш инстанс ТестОпс.
Перейдите в раздел Администрирование → Окружение.
Для каждой переменной, которую вы хотите добавить:
- Нажмите + Создать.
- Введите название переменной.
- Нажмите Отправить.

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

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

Нажмите Отправить.
3.4. Установите значения по умолчанию в пайплайне Azure DevOps
Перейдите в ваш проект Azure DevOps.
В сайдбаре слева перейдите в раздел Pipelines → 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.
3.5. Укажите переменные в пайплайне Azure DevOps
- После шага 3.4 убедитесь, что в Azure DevOps открыт файл azure-pipelines.yml.
- В шаге, который запускает тесты, добавьте созданные переменные в блок
env, используя синтаксис$(ИМЯ_ПЕРЕМЕННОЙ). - В правом верхнем углу нажмите Validate and save.
- Нажмите Save.
Пример использования переменных в пайплайне
Предположим, вы указали значения по умолчанию для переменных Branch, PRODUCT_VERSION и TESTS_BROWSER. Чтобы связать пайплайн с этими переменными, добавьте их в блок env:
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
- bash: ./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)
BRANCH: $(Branch)
PRODUCT_VERSION: $(PRODUCT_VERSION)
TESTS_BROWSER: $(TESTS_BROWSER)Удаление интеграции
Вы можете удалить интеграцию с Azure DevOps двумя способами — на уровне всего инстанса ТестОпс (через раздел Администрирование) или на уровне отдельного проекта (через настройки проекта).
Важно
Последствия удаления интеграции:
Удаление на уровне инстанса:
- Связь с инстансом Azure DevOps будет удалена из всех джоб ТестОпс, которые относятся к интеграции. Иконки для запуска и обновления этих джоб в разделе Джобы станут неактивными.
- Результаты запусков тестов из Azure DevOps не будут отправляться в инстанс ТестОпс.
- Все связи с задачами Azure DevOps, которые относятся к интеграции, будут удалены из сущностей ТестОпс. Это действие необратимо — восстановить удаленные ссылки будет невозможно.
Удаление на уровне проекта:
- Связь с инстансом Azure DevOps будет удалена из джобы ТестОпс, которая относится к интеграции и находится в этом проекте. Иконки для запуска и обновления этой джобы в разделе Джобы останутся активными.
- ТестОпс не сможет запустить тесты из проекта на стороне Azure DevOps. После закрытия запуска результаты этих тестов получат статус «Неизвестный».
- Результаты запусков тестов из Azure DevOps не будут отправляться в проект ТестОпс.
- Все связи с задачами Azure DevOps, которые относятся к интеграции, будут сохранены в сущностях ТестОпс, но вы не сможете создавать новые связи для этого проекта.
В ТестОпс перейдите в раздел Администрирование → Интеграции.
В списке настроенных интеграций найдите и откройте интеграцию с Azure DevOps.
В списке настроенных подключений найдите ваше подключение к Azure DevOps и убедитесь, что оно не используется в проектах ТестОпс.
Если интеграция подключена к проектам, удалите ее из них. Для этого откройте карточку подключения к Azure DevOps и напротив названия каждого проекта нажмите
⋯→ Удалить из проекта → Да, удалить.Напротив нужного подключения к Azure DevOps нажмите
⋯→ Удалить → Да, удалить.

