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. Нажмите иконку Копировать, чтобы скопировать токен в буфер обмена.

    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. В запуске в ТестОпс откройте результаты одного теста.

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

    Ссылка на пайплайн 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. Нажмите Удалить.

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