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

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

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

Введение

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

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

Создание конвейера

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

  2. Нажмите Создать конвейер.

    Кнопка “Создать конвейер” находится вверху.

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

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

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

    Можно добавить репозиторий GitHub.

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

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

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

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

    • Добавьте имя для вашего проекта (кажется, имя должно отличаться от имени конвейера)
    • Выберите образ контейнера (ОС, версия с набором библиотек)
    • Назначьте роль службы (вы можете использовать существующую для CodeBuild, не путать с CodePipeline, или создать новую, как в примере)
    • Добавьте другие параметры, специфичные для вашей сборки, такие как тайм-ауты, ресурсы, сертификаты и т.д.
  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

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

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

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

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

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

Доступны одиночная сборка и пакетная сборка.

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

Настройка роли службы, используемой для CodeBuild

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

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

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

Вам нужно добавить следующие 3 роли:

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

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

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

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

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

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

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

allurectl

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

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