Skip to content

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

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

  • автоматически передавать результаты тестов из пайплайна CircleCI в ТестОпс с помощью allurectl;
  • запускать пайплайн CircleCI из интерфейса ТестОпс через запуск джобы ТестОпс.

В настроенной интеграции одна джоба ТестОпс соответствует одному пайплайну CircleCI, а один запуск джобы — одному запуску этого пайплайна.

Примечание

Чтобы настроить или удалить любую интеграцию ТестОпс с внешней системой, необходима глобальная роль «Администратор» в инстансе ТестОпс и, как правило, права администратора инстанса внешней системы.

Настройка интеграции и подключений с CircleCI

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

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

    1. Создайте персональный API-токен в CircleCI.
    2. Подключите интеграцию с CircleCI на уровне инстанса ТестОпс.
    3. Добавьте настроенное подключение к CircleCI в проект ТестОпс.
  2. Настройте связь от CircleCI к ТестОпс:

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

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

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

  1. Создайте персональный API-токен в CircleCI.
  2. Сохраните API-токен в безопасном месте, он понадобится для подключения интеграции с CircleCI в ТестОпс.

1.2. Подключите интеграцию с CircleCI на уровне инстанса ТестОпс

  1. Перейдите в ваш инстанс ТестОпс → раздел АдминистрированиеИнтеграции.

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

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

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

    • Название подключения — введите название, которое поможет вам распознать интеграцию (например, CircleCI production).

    • Endpoint — введите URL-адрес вашего инстанса CircleCI (например, https://circleci.com/).

    • Тип учетных данных — нажмите на выпадающий список и выберите тип учетных данных CircleCI, который будет поддерживать интеграция:

      • Все (глобальные и проектные) — интеграция может работать как с глобальными, так и с проектными учетными данными;
      • Только глобальные — интеграция может работать только с глобальными учетными данными;
      • Только проектные — интеграция может работать только с проектными учетными данными.

      Примечание

      Подробнее о поддерживаемых типах учетных данных см. Интеграции с внешними системами → Учетные данные внешних систем.

  5. Если ваш инстанс CircleCI использует самоподписанный SSL-сертификат, уберите галочку напротив Проверка SSL-сертификата.

  6. Если интеграция может работать с глобальными учетными данными CircleCI, в секции Глобальные учетные данные введите API-токен, который вы сохранили на шаге 1.1.

  7. Нажмите Добавить подключение.

В разделе АдминистрированиеИнтеграции появится интеграция с CircleCI с одним автоматически созданным подключением.

1.3. Добавьте настроенное подключение к CircleCI в проект ТестОпс

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

  1. В ТестОпс перейдите в раздел АдминистрированиеИнтеграции.

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

  3. В списке настроенных подключений найдите и откройте ваше подключение к CircleCI.

  4. Нажмите Добавить в проект.

  5. В списке доступных проектов выберите нужный проект ТестОпс.

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

    • Проектные — использовать проектные учетные данные для подключения к CircleCI;
    • Глобальные — использовать глобальные учетные данные для подключения к CircleCI.
  7. Если интеграция будет работать с проектными учетными данными CircleCI, в секции Проектные учетные данные введите API-токен, который вы сохранили на шаге 1.1.

  8. Нажмите Добавить в проект.

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

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

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

  1. Создайте API-токен в ТестОпс.
  2. Сохраните API-токен в безопасном месте, он понадобится для настройки пайплайна в CircleCI.

2.2. Укажите API-токен из ТестОпс в CircleCI

  1. Добавьте переменную окружения в проект CircleCI, заполнив поля:

    • Name — введите ALLURE_TOKEN;
    • Value — введите API-токен, который вы сохранили на шаге 2.1.

2.3. Измените пайплайн в CircleCI

Примечание

Измените в пайплайне каждую джобу, которая запускает тесты и участвует в интеграции.

  1. Перейдите в ваш репозиторий CircleCI.

  2. Откройте файл .circleci/config.yml.

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

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

    • ALLURE_JOB_RUN_ID,
    • ALLURE_USERNAME.

    Важно

    Для обоих параметров укажите значение по умолчанию "". Это означает, что параметры можно оставить пустыми при запуске пайплайна в CircleCI, но они должны быть обязательно объявлены. Без этих параметров запуск пайплайна со стороны ТестОпс не будет работать: CircleCI отклоняет запрос, если в нем переданы параметры, которые не объявлены в .circleci/config.yml.

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

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

      Совет

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

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

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

      • ALLURE_ENDPOINTURL-адрес инстанса ТестОпс.

      • ALLURE_PROJECT_IDID проекта ТестОпс.

      • 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 в зависимости от SSL-сертификата вашего инстанса ТестОпс:

      • ./allurectl watch — если сертификат не самоподписанный.
      • ./allurectl --insecure watch — если сертификат самоподписанный.
  6. Сохраните изменения в файле.

Пример изменения пайплайна

Предположим, вы работаете с 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 watch -- gradle clean test

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

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

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

    Примечание

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

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

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

  5. Ближе к концу лога шага найдите ссылку на запуск в ТестОпс (например, Report link: https://testops.example.com/jobrun/23).

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

  7. В левом нижнем углу в секции Из запуска джобы найдите ссылку на пайплайн CircleCI.

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

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

  1. Перейдите в ваш проект ТестОпс → раздел Джобы.

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

  2. Напротив добавленной джобы нажмите Настроить.

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

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

3. Параметризируйте джобу в ТестОпс и пайплайн в CircleCI

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

3.1. Укажите параметры в пайплайне CircleCI

Примечание

Измените в пайплайне каждую джобу, которая запускает тесты и участвует в интеграции.

  1. Перейдите в ваш репозиторий CircleCI.
  2. Откройте файл .circleci/config.yml.
  3. В глобальном блоке parameters объявите параметры и их значения по умолчанию.
  4. В блоке 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. Добавьте глобальные переменные окружения в ТестОпс

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

  1. Перейдите в ваш инстанс ТестОпс → раздел АдминистрированиеОкружения.

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

    1. Нажмите + Создать.
    2. Введите название глобальной переменной.
    3. Нажмите Отправить.

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

    Важно

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

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

  1. Перейдите в ваш проект ТестОпс → раздел НастройкиОкружение.

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

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

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

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

  1. Перейдите в ваш проект ТестОпс → раздел Джобы.

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

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

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

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

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

Удаление подключений и интеграции с CircleCI

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

Удаление подключения на уровне проекта

Важно

Последствия удаления всех подключений из интеграции с CircleCI на уровне проекта:

  • Подключения к интеграции с CircleCI перестанут отображаться в списке подключений проекта, но продолжат работать в других проектах инстанса, в которых они были добавлены, и сохранятся в разделе АдминистрированиеИнтеграции.

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

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

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

Чтобы удалить подключение на уровне проекта:

  1. Перейдите в ваш проект ТестОпс → раздел НастройкиИнтеграции.
  2. В списке настроенных интеграций найдите и откройте интеграцию с CircleCI.
  3. Напротив нужного подключения к CircleCI нажмите УдалитьДа, удалить.

Подключение перестанет работать в вашем проекте.

Удаление подключения на уровне инстанса

Важно

Последствия удаления всех подключений из интеграции с CircleCI на уровне инстанса:

  • Подключения и интеграция с CircleCI будут полностью удалены.

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

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

Чтобы удалить подключение на уровне инстанса:

  1. Перейдите в ваш инстанс ТестОпс → раздел АдминистрированиеИнтеграции.
  2. В списке настроенных интеграций найдите и откройте интеграцию с CircleCI.
  3. В списке настроенных подключений откройте карточку нужного подключения и напротив названия каждого проекта нажмите Удалить из проектаДа, удалить.
  4. Нажмите Назад в интеграцию, чтобы вернуться к списку подключений.
  5. Напротив нужного подключения к CircleCI нажмите УдалитьДа, удалить.

Подключение перестанет работать во всех проектах инстанса.

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