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

