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

Загрузка результатов тестов из AWS CodePipeline

Для загрузки результатов тестов из AWS Code Pipelines вам нужно использовать allurectl.

Введение

Цель этой главы — объяснить, как AWS Code Pipelines могут быть интегрированы с рабочими процессами ТестОпс.

Эта глава не будет охватывать особенности AWS Code Pipelines и подробное описание конфигурации AWS Pipelines, так как мы считаем, что команда AWS создала качественную документацию по своему продукту.

Создание пайплайна

  1. В инструментах разработчика Code Pipeline откройте Code Pipelines, а затем раздел Pipelines.

  2. Нажмите Create pipeline.

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

  3. Затем назначьте новую или существующую сервисную роль.

    Экран позволяет выбрать новую или существующую роль.

  4. Добавьте репозиторий с кодом в ваш пайплайн.

    Выбор репозитория GitHub.

  5. Добавьте шаг сборки.

  6. Создайте новый или выберите существующий проект CodeBuild (в нашем примере мы создадим новый проект).

    На экране доступна кнопка для создания нового проекта CodeBuild.

    Когда вы создаете новый проект, появится новая форма. В этом окне вам нужно настроить ваш новый проект:

    1. Добавьте имя для вашего проекта (кажется, имя должно отличаться от названия пайплайна).
    2. Выберите образ контейнера (ОС, версия с набором библиотек).
    3. Назначьте сервисную роль. Вы можете использовать существующую роль для CodeBuild (не путать с CodePipeline) или создать новую, как в примере.
    4. Добавьте другие параметры, специфичные для вашей сборки, такие как таймауты, ресурсы, сертификаты и т. д.
  7. Добавьте переменные окружения, необходимые для загрузки результатов тестирования с помощью allurectl.

    • ALLURE_ENDPOINT — FQDN или IP-адрес вашего инстанса ТестОпс.
    • ALLURE_TOKEN — персональный API-токен, сгенерированный в профиле пользователя.
    • ALLURE_PROJECT_ID — ID проекта на стороне ТестОпс, в который будут отправлены результаты тестирования.

    В окне можно указать переменные окружения.

О токене API

Токен API

Токен API будет использоваться allurectl, работающим в пайплайне, для аутентификации/авторизации вашего пайплайна для загрузки результатов тестирования на сервер ТестОпс.

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

  2. Нажмите на ваш аватар и перейдите в Ваш профиль.

  3. В разделе API-токены нажмите + Токен.

  4. Придумайте имя для API-токена и нажмите Отправить. Всегда давайте осмысленные имена всем параметрам конфигурации.

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

  5. Скопируйте токен и сохраните его в безопасном месте, так как он не может быть восстановлен средствами ТестОпс.

Спецификация YAML

Далее вам нужно указать путь к YAML-спецификации AWS.

  • Расположение по умолчанию: /buildspec.yml
  • Вы можете указать другое расположение, если YAML не хранится в корне вашего репозитория.

Указывать другое имя файла buildspec необязательно.

Затем нажмите на CodeBuild, окно закроется, и вы вернетесь на страницу создания пайплайна.

Выберите, какой тип сборки вам нужен. Убедитесь, что все на месте, и нажмите Next.

Можно выбрать одиночную сборку или пакетную.

В зависимости от вашего процесса вы можете либо пропустить создание этапа развертывания, либо настроить его, если требуется развертывание. Это выходит за рамки интеграции с ТестОпс.

Настройка сервисной роли для CodeBuild

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

Найдите сервисную роль, которую вы используете в CodeBuild, и выберите ее для редактирования.

Политики перечислены в таблице.

Добавьте следующие 3 роли:

  • codebuild:BatchGetBuilds
  • codebuild:BatchGetBuildBatches
  • codepipeline:GetPipelineState

Роли указаны в коде JSON.

Затем укажите, для каких ресурсов применяются эти правила:

  • все проекты для codebuild
  • все проекты для codepipeline

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

Ресурсы указаны в коде JSON.

Запуск вашего пайплайна и отправка результатов тестирования в ТестОпс

allurectl

allurectl используется для загрузки результатов тестирования в ТестОпс.

allurectl должен быть добавлен в пайплайн или загружен в пайплайн на каком-то этапе выполнения пайплайна.