Перейти к основному содержимому

Интеграция с Azure DevOps

Эта страница описывает, как настроить ТестОпс и Azure DevOps в проекте, который использует Azure Pipelines для запуска тестов.

Как и все другие интеграции CI для ТестОпс, это включает двустороннюю связь.

  • Задача в Azure pipeline будет использовать allurectl для отправки своего статуса и результатов тестов в ТестОпс.
  • ТестОпс будет использовать API Azure DevOps для запуска новых pipeline, при необходимости передавая тест-план.

После остановки выполнения pipeline соответствующий запуск в ТестОпс может быть закрыт вручную или автоматически в соответствии с Политикой автоматического закрытия.

Чтобы включить поддержку ТестОпс в вашем Azure DevOps pipeline:

  1. включите отправку данных из Azure DevOps,
  2. включите запуск Azure pipeline,
  3. параметризуйте джобы (если необходимо).

1. Включите отправку данных из Azure DevOps

Чтобы Azure DevOps отправлял статусы выполнения и результаты тестов в ТестОпс, вам нужно создать токен аутентификации в ТестОпс, добавить токен в Azure DevOps и изменить сам pipeline.

Затем запустите и проверьте pipeline, чтобы убедиться, что все работает.

1.1. Создайте токен в ТестОпс

  1. В ТестОпс нажмите на свой аватар и перейдите в Ваш профиль.

  2. В разделе API токены нажмите Создать.

  3. Введите Имя токена (например, «Токен для Azure DevOps»), затем нажмите Отправить.

  4. В появившемся диалоговом окне нажмите значок Копировать, чтобы скопировать токен в буфер обмена.

    Этот токен понадобится вам на следующем шаге.

1.2. Укажите токен в Azure DevOps

  1. В Azure DevOps перейдите в Pipelines и выберите нужный pipeline.

  2. В правом верхнем углу нажмите Изменить.

  3. В правом верхнем углу нажмите Переменные.

  4. Нажмите Новая переменная или +. В появившемся диалоговом окне заполните поля:

    • Имя — «ALLURE_TOKEN».
    • Значение — API токен, который вы получили на шаге 1.1.
    • Сохранить это значение в секрете — должно быть отмечено.
    • Разрешить пользователям переопределять это значение при запуске этого pipeline — не должно быть отмечено.

    Нажмите ОК.

  5. Нажмите + снова. В появившемся диалоговом окне заполните поля:

    • Имя — «ALLURE_JOB_RUN_ID».
    • Значение — должно быть пустым.
    • Сохранить это значение в секрете — не должно быть отмечено.
    • Разрешить пользователям переопределять это значение при запуске этого pipeline — должно быть отмечено.

    Нажмите ОК.

  6. Нажмите Сохранить, чтобы применить изменения и закрыть диалоговое окно.

1.3. Измените pipeline

Внесите следующие изменения в файл azure-pipelines.yml в вашем репозитории. Вы можете сделать это либо в локальном каталоге, либо в веб-редакторе текста Azure.

  1. В начале раздела steps добавьте новый шаг, который загружает инструмент allurectl и делает его исполняемым.

  2. В шаге, который запускает тесты, добавьте или расширьте блок env. Он должен включать следующие переменные:

    • ALLURE_ENDPOINT — URL сервера ТестОпс.
    • ALLURE_PROJECT_ID — ID проекта ТестОпс.
    • ALLURE_RESULTS — путь к каталогу с результатами тестов, например, «build/allure-results». Если в вашем проекте несколько каталогов с результатами тестов, вы можете разделить их запятыми или использовать шаблон с подстановочными знаками, например, «modules/*/build/allure-results».
    • ALLURE_TOKEN$(ALLURE_TOKEN).
  3. Оберните команду, которая запускает тесты, в команду ./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

  1. В Azure DevOps откройте проект и перейдите к запуску pipeline, вызванному последним коммитом.

    В качестве альтернативы, запустите новый pipeline вручную.

  2. Если выполнение pipeline еще не завершено, дождитесь его завершения.

  3. В деталях выполнения pipeline нажмите на задачу, которая запускает тесты.

    Ближе к концу ее лога должна быть ссылка на отчет о тестировании в ТестОпс. Убедитесь, что она присутствует и работает.

    Ссылка на запуск находится в логах выполнения конвейера.

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

    Внизу страницы должна быть ссылка обратно на Azure pipeline. Убедитесь, что она присутствует и работает.

    Ссылка на пайплайн Azure DevOps находится в нижней части правой панели.


2. Включите запуск Azure pipeline

На стороне ТестОпс интеграция с Azure DevOps должна быть настроена на двух уровнях.

Сначала администратор укажет URL Azure DevOps.

Затем владелец любого проекта создаст токен аутентификации в Azure DevOps, добавит его в ТестОпс и настроит джоб в ТестОпс.

2.1. Укажите URL Azure DevOps в ТестОпс

  1. Войдите в ТестОпс, используя учетную запись администратора.

  2. Нажмите на свой аватар и перейдите в АдминистрированиеИнтеграции.

  3. Нажмите Добавить интеграцию в правом верхнем углу страницы.

  4. В появившемся диалоговом окне выберите Azure DevOps Server.

  5. Заполните поля:

    • Имя — имя, которое поможет вам распознать интеграцию, например, «Azure DevOps production».
    • Endpoint — URL организации Azure DevOps, например, «https://dev.azure.com/my-organization/».
  6. Нажмите Добавить интеграцию.

2.2. Создайте токен в Azure DevOps

  1. В Azure DevOps нажмите на значок Настройки пользователя рядом с вашим аватаром и выберите Личные токены доступа.

  2. Нажмите Новый токен.

  3. В появившемся диалоговом окне заполните поля:

    • Имя — имя, которое поможет вам распознать токен, например, «Токен для ТестОпс».
    • Организация — организация Azure DevOps, которая содержит проект, который вы хотите интегрировать с ТестОпс.
    • Срок действия — как долго токен должен оставаться действительным. После этой даты интеграция перестанет работать, и вам нужно будет создать новый токен для продолжения использования интеграции.
    • Права доступа — «Пользовательские».
  4. Внизу диалогового окна нажмите Показать все права доступа.

  5. Выберите следующие права доступа:

    • Build → Read and execute.
    • Work items → Read, Write & Manage
    • Variable Groups → Read
  6. Нажмите Создать.

    Новый токен станет временно видимым. Скопируйте его.

    Этот токен понадобится вам на следующем шаге.

2.3. Добавьте токен в проект ТестОпс

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите НастройкиИнтеграции.

  3. В разделе Доступные интеграции найдите интеграцию Azure DevOps и нажмите Добавить интеграцию рядом с ней.

  4. В появившемся диалоговом окне заполните поля:

    • Имя пользователя (email) — email, который вы используете для входа в Azure DevOps.
    • API токен — API токен, который вы получили на шаге 2.2.
    Совет

    Проверьте правильность учетных данных

    Нажмите Проверить соединение. Через несколько мгновений должно появиться сообщение «Соединение установлено».

  5. Нажмите Добавить интеграцию, чтобы закрыть диалоговое окно и сохранить настройки.

2.4. Настройте джоб в ТестОпс

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите Джобы.

    Страница должна содержать новую Джобу, автоматически добавленную и настроенную во время запуска на шаге 1.4.

  3. Нажмите на меню с тремя точками джобы, затем выберите Настроить.

  4. В появившемся диалоговом окне отредактируйте поля:

    • Сервер сборки — имя интеграции, которую вы добавили на шаге 2.1.
    • Джоба может быть использована для запуска тестов — если отмечено, пользователи смогут запускать эту джобу из ТестОпс.
    • Параметры — параметры, которые должны быть переданы в Azure DevOps через переменные окружения, см. Окружение.

    Диалоговое окно позволяет задать настройки джобы.

  5. Нажмите Отправить.


3. Параметризуйте джобы

Запуски Azure pipeline могут принимать переменные. ТестОпс интегрирует эту функцию с собственной концепцией Окружение, что позволяет вам как задавать параметры для новых джоб, так и видеть параметры, установленные для джоб, запущенных вне ТестОпс.

Сначала администратор объявляет требуемые отображаемые имена для параметров глобально.

Затем владелец любого проекта настраивает сопоставление параметров в настройках проекта и в настройках джобы в ТестОпс.

Наконец, переменные также должны быть добавлены в pipeline в Azure DevOps.

Важно

Если в репозитории вашего проекта несколько веток, обязательно создайте переменную окружения «Branch» в ТестОпс и передайте ее в вашу джобу. Это специальное имя укажет Azure DevOps, какую из веток использовать.

3.1. Добавьте глобальные имена параметров

  1. Войдите в ТестОпс, используя учетную запись администратора.

  2. Нажмите на свой аватар и перейдите в АдминистрированиеОкружение.

  3. Для каждого имени параметра, которое вы хотите добавить:

    1. Нажмите Создать.

    2. Введите имя нового параметра.

    3. Нажмите Отправить.

    Имена переменных окружения добавляются в настройках Администрирования.

3.2. Сопоставьте параметры с переменными окружения

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите НастройкиОкружение.

  3. Для каждого имени параметра, которое вы хотите использовать:

    1. Нажмите Создать, если параметра нет в списке. В противном случае нажмите значок Изменить рядом с его именем.

    2. В поле Ключ сопоставления укажите имя переменной окружения.

    3. В поле Переменная окружения выберите глобальное имя параметра из шага 3.1.

    4. Нажмите Отправить.

    Сопоставление переменных окружения настраивается в настройках проекта.

3.3. Добавьте параметры в джобу

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите Джобы.

  3. Найдите джобу, которую вы хотите параметризовать. Нажмите на меню с тремя точками джоби, затем выберите Настроить.

    Появится диалоговое окно настроек джобы, содержащее раздел Параметры.

  4. Для каждого параметра, который вы хотите добавить, нажмите Добавить и заполните поля:

    • Имя — имя переменной окружения (такое же, как Ключ сопоставления из шага 3.2).
    • Значение — значение по умолчанию, которое должно использоваться, если не переопределено для конкретного запуска.
    • Переменная окружения — переменная окружения из шага 3.1.

    В диалоговом окне можно указать несколько переменных окружения.

  5. Нажмите Отправить.

3.4. Установите значения по умолчанию в pipeline

  1. В Azure DevOps перейдите в Pipelines и выберите нужный pipeline.

  2. В правом верхнем углу нажмите Изменить.

  3. В правом верхнем углу нажмите Переменные.

  4. Для каждого параметра, который вы хотите добавить, нажмите + и заполните поля:

    • Имя — имя переменной окружения (такое же, как Ключ сопоставления из шага 3.2 и Имя из шага 3.3).
    • Значение — значение по умолчанию, которое должно использоваться, если не переопределено для конкретного запуска (такое же, как Значение из шага 3.3).
    • Сохранить это значение в секрете — не должно быть отмечено.
    • Разрешить пользователям переопределять это значение при запуске этого pipeline — должно быть отмечено.

    Нажмите ОК, чтобы завершить редактирование новой переменной.

  5. Нажмите Сохранить, чтобы применить изменения и закрыть диалоговое окно.