Skip to content

Интеграция с CircleCI

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

Примечание

Чтобы настроить или удалить интеграцию в ТестОпс, вы должны иметь доступ к разделам:

  • Администрирование — необходимы права администратора инстанса;
  • Настройки в конкретном проекте — необходима роль владельца этого проекта.

Интеграция с CircleCI позволяет настроить двустороннюю связь:

  • Джоба в пайплайне CircleCI использует allurectl, чтобы отправить свой статус и результаты тестов в ТестОпс.
  • ТестОпс использует API CircleCI для запуска новых пайплайнов, при необходимости передавая тест-план.

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

Настройка интеграции

Чтобы настроить интеграцию с CircleCI:

  1. Настройте связь от ТестОпс к CircleCI:

    1. Создайте токен в CircleCI.

    2. На уровне инстанса ТестОпс добавьте интеграцию с CircleCI, указав:

      • название интеграции;
      • URL-адрес CircleCI.
    3. На уровне инстанса или проекта ТестОпс включите добавленную интеграцию для проекта, указав созданный токен из CircleCI.

  2. Настройте связь от CircleCI к ТестОпс:

    1. Создайте API-токен в ТестОпс.
    2. Укажите созданный API-токен в CircleCI.
    3. Измените джобу в CircleCI.
    4. Запустите и проверьте пайплайн в CircleCI.
    5. Настройте созданную джобу в ТестОпс.
  3. Параметризируйте джобы CircleCI (если необходимо).

1. Настройте связь от ТестОпс к CircleCI

1.1. Создайте токен в CircleCI

  1. В CircleCI нажмите на ваш аватар в левом нижнем углу.

  2. В сайдбаре слева перейдите в раздел Personal API Tokens.

  3. Нажмите Create New Token.

  4. В появившемся окне введите название токена в поле Token Name, чтобы помочь вам распознать токен, например, Токен для ТестОпс.

  5. Нажмите Add API Token.

  6. В появившемся окне нажмите Copy, чтобы скопировать токен в буфер обмена.

    Cохраните токен в безопасном месте, он понадобится для настройки интеграции в проекте ТестОпс.

1.2. Добавьте интеграцию с CircleCI в ТестОпс

  1. Перейдите в ваш инстанс ТестОпс.

  2. Перейдите в раздел АдминистрированиеИнтеграции.

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

  4. В списке доступных интеграций выберите CircleCI.

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

    • Название — название, которое поможет вам распознать интеграцию, например, CircleCI production.
    • Endpoint — URL-адрес инстанса CircleCI, например, https://circleci.com/.
  6. Если ваш инстанс CircleCI использует самоподписанный SSL-сертификат, поставьте галочку напротив Отключить проверку сертификата.

  7. Нажмите Добавить интеграцию.

1.3. Включите интеграцию для проекта ТестОпс

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

  1. Перейдите в раздел АдминистрированиеИнтеграции.
  2. В списке настроенных интеграций найдите и откройте вашу интеграцию с CircleCI.
  3. Перейдите на вкладку Проекты.
  4. Справа от поля поиска нажмите +.
  5. В выпадающем списке Проект выберите нужный проект ТестОпс.
  6. В появившемся окне укажите Токен, который вы сохранили на шаге 1.1.
  7. Нажмите Проверить соединение. Если токен указан верно, через несколько секунд появится сообщение «Соединение установлено».
  8. Нажмите Добавить интеграцию.

2. Настройте связь от CircleCI к ТестОпс

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

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

  1. В ТестОпс нажмите на ваш аватар и перейдите в раздел API-токены.

  2. Нажмите + Токен.

  3. Введите название токена, которое поможет вам распознать интеграцию, например, Токен для CircleCI.

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

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

  5. Нажмите иконку Копировать, чтобы скопировать токен в буфер обмена.

    Cохраните токен в безопасном месте, он понадобится для настройки интеграции в CircleCI.

2.2. Укажите токен в CircleCI

  1. В CircleCI откройте страницу проекта и нажмите Project Settings в правом верхнем углу.

  2. В сайдбаре слева перейдите в раздел Environment Variables.

  3. Нажмите Add Environment Variable.

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

    • NameALLURE_TOKEN.
    • Value — API-токен, который вы сохранили на шаге 2.1.
  5. Нажмите Add Environment Variable, чтобы сохранить настройки.

2.3. Измените джобу

Чтобы внести изменения в пайплайн, перейдите в ваш репозиторий и внесите изменения в файл .circleci/config.yml:

  1. Убедитесь, что параметр version имеет значение 2.1.

  2. Добавьте или расширьте блок parameters. Он должен включать два необязательных строковых параметра: ALLURE_JOB_RUN_ID и ALLURE_USERNAME.

  3. Для каждой джобы, которая запускает тесты:

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

      В приведенном ниже примере мы используем curl для загрузки файла. Если curl не включен в образ Docker, который вы используете для джобы, используйте wget или аналогичный инструмент.

      Вы также можете создать и использовать собственный образ Docker с allurectl.

    2. Добавьте или расширьте блок environment. Он должен включать следующие переменные:

      • ALLURE_ENDPOINT — URL-адрес инстанса ТестОпс.
      • ALLURE_PROJECT_ID — ID проекта ТестОпс.
      • ALLURE_RESULTS — путь к директории с результатами тестов, например, build/allure-results. Если в вашем проекте несколько директорий с результатами тестов, вы можете разделить их запятыми или использовать шаблон с подстановочными символами, например, modules/*/build/allure-results.
      • ALLURE_JOB_RUN_ID<< pipeline.parameters.ALLURE_JOB_RUN_ID >>.
      • ALLURE_USERNAME<< pipeline.parameters.ALLURE_USERNAME >>.
    3. Оберните команду, которая запускает тесты, в команду ./allurectl watch.

Пример изменения джобы

Предположим, вы работаете с Java-проектом, в котором файл .circleci/config.yml выглядит следующим образом:

yaml
version: 2.1
workflows:
  test:
    jobs:
      - test
jobs:
  test:
    docker:
      - image: cimg/openjdk:17.0
    working_directory: ~/repo
    steps:
      - checkout
      - run:
          name: Run tests
          command: gradle clean test

Чтобы настроить интеграцию с ТестОпс, вам необходимо изменить файл по примеру ниже:

yaml
version: 2.1
workflows:
  test:
    jobs:
      - test
parameters:
  ALLURE_JOB_RUN_ID:
    type: string
    default: ""
  ALLURE_USERNAME:
    type: string
    default: ""
jobs:
  test:
    docker:
      - image: cimg/openjdk:17.0
    working_directory: ~/repo
    environment:
      ALLURE_ENDPOINT: https://testops.example.com
      ALLURE_PROJECT_ID: 1
      ALLURE_RESULTS: build/allure-results
      ALLURE_JOB_RUN_ID: << pipeline.parameters.ALLURE_JOB_RUN_ID >>
      ALLURE_USERNAME: << pipeline.parameters.ALLURE_USERNAME >>
    steps:
      - checkout
      - run:
          name: Download allurectl
          command: curl -fsSL https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64 -o allurectl && chmod +x allurectl
      - run:
          name: Run tests
          command: ./allurectl --insecure watch -- gradle clean test

2.4. Запустите и проверьте пайплайн

  1. В CircleCI откройте проект, для которого вы настраиваете интеграцию.

  2. Перейдите к запуску пайплайна, инициированному последним коммитом.

    Примечание

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

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

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

  5. Ближе к концу лога найдите ссылку на запуск в ТестОпс.

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

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

  7. В карточке результата теста в левом нижнем углу найдите ссылку на пайплайн CircleCI.

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

  8. Перейдите по ссылке в CircleCI, чтобы убедиться, что она работает корректно.

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

  1. Перейдите в ваш проект ТестОпс.

  2. Перейдите в раздел Джобы.

    На странице должна быть новая джоба, автоматически добавленная и настроенная во время запуска на шаге 2.4.

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

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

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

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

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

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

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

Важно

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

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

Чтобы внести изменения в пайплайн, отредактируйте .circleci/config.yml в вашем репозитории.

  1. В глобальном блоке parameters объявите параметры и их значения по умолчанию.
  2. В блоке environment оберните параметры в переменные окружения, чтобы инструмент allurectl мог получить к ним доступ.

Например:

yaml
version: 2.1
workflows:
  test:
    jobs:
      - test
parameters:
  ALLURE_JOB_RUN_ID:
    type: string
    default: ""
  ALLURE_USERNAME:
    type: string
    default: ""
  PRODUCT_VERSION:
    type: string
    default: "1.23"
  TESTS_BROWSER:
    type: string
    default: chrome
jobs:
  test:
    docker:
      - image: cimg/openjdk:17.0
    working_directory: ~/repo
    environment:
      ALLURE_ENDPOINT: https://testops.example.com
      ALLURE_PROJECT_ID: 1
      ALLURE_RESULTS: build/allure-results
      ALLURE_JOB_RUN_ID: << pipeline.parameters.ALLURE_JOB_RUN_ID >>
      ALLURE_USERNAME: << pipeline.parameters.ALLURE_USERNAME >>
      PRODUCT_VERSION: << pipeline.parameters.PRODUCT_VERSION >>
      TESTS_BROWSER: << pipeline.parameters.TESTS_BROWSER >>
    steps:
      - checkout
      - run:
          name: Download allurectl
          command: curl -fsSL https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64 -o allurectl && chmod +x allurectl
      - run:
          name: Run tests
          command: ./allurectl --insecure watch -- gradle clean test

3.2. Добавьте глобальные переменные окружения в ТестОпс

  1. Перейдите в ваш инстанс ТестОпс.

  2. Перейдите в раздел АдминистрированиеОкружения.

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

    Обратите внимание, что это название может быть человекочитаемым и не обязательно должно совпадать с названием из шага 3.1.

    Названия переменных окружения добавляются в разделе «Администрирование».

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

  1. Перейдите в ваш проект ТестОпс.

  2. Перейдите в раздел НастройкиОкружение.

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

    1. Нажмите + Создать, если параметра нет в списке. Если параметр уже существует, нажмите иконку Редактировать рядом с его названием.
    2. В поле Ключ укажите название переменной окружения из шага 3.1.
    3. В поле Переменная окружения выберите глобальное название параметра из шага 3.2.
    4. Нажмите Отправить.

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

3.4. Добавьте параметры в джобу ТестОпс

  1. Перейдите в раздел Джобы.

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

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

    • Название — название переменной окружения из шага 3.1.
    • Значение — значение по умолчанию, такое же, как default из шага 3.1.
    • Переменная окружения — глобальное название параметра из шага 3.2.

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

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

Удаление интеграции

Вы можете удалить интеграцию с CircleCI двумя способами — на уровне всего инстанса ТестОпс (через раздел Администрирование) или на уровне отдельного проекта (через настройки проекта).

Важно

Последствия удаления интеграции:

  • Удаление на уровне инстанса — связь с инстансом CircleCI будет удалена из всех джоб ТестОпс, которые относятся к интеграции:

    • Иконки для запуска и обновления этих джоб в разделе Джобы станут неактивными.
    • Результаты запусков тестов из CircleCI не будут отправляться в инстанс ТестОпс.
  • Удаление на уровне проекта — связь с инстансом CircleCI будет удалена из джобы ТестОпс, которая относится к интеграции и находится в этом проекте:

    • Иконки для запуска и обновления этой джобы в разделе Джобы останутся активными.
    • ТестОпс не сможет запустить тесты из проекта на стороне CircleCI. После закрытия запуска результаты этих тестов получат статус Неизвестный.
    • Результаты запусков тестов из CircleCI не будут отправляться в проект ТестОпс.
  1. Перейдите в раздел АдминистрированиеИнтеграции.

  2. В списке настроенных интеграций найдите и откройте вашу интеграцию с CircleCI.

  3. Перейдите на вкладку Проекты и убедитесь, что интеграция не используется в проектах ТестОпс.

    Если интеграция подключена к проектам, удалите ее из них. Для этого напротив названия каждого проекта нажмите иконку корзины → Удалять.

  4. Перейдите на вкладку Конфигурация.

  5. Нажмите Удалить интеграцию.

  6. Нажмите Удалить.

Logo © 2025 Все права защищены. Сайт принадлежит компании ООО «Инструменты тестирования»