Интеграция с CircleCI
Интеграция с CircleCI позволяет:
- автоматически передавать результаты тестов из пайплайна CircleCI в ТестОпс с помощью allurectl;
- запускать пайплайн CircleCI из интерфейса ТестОпс через запуск джобы ТестОпс.
В настроенной интеграции одна джоба ТестОпс соответствует одному пайплайну CircleCI, а один запуск джобы — одному запуску этого пайплайна.
Примечание
Чтобы настроить или удалить любую интеграцию ТестОпс с внешней системой, необходима глобальная роль «Администратор» в инстансе ТестОпс и, как правило, права администратора инстанса внешней системы.
Настройка интеграции и подключений с CircleCI
Чтобы настроить интеграцию с CircleCI:
Настройте связь от ТестОпс к CircleCI:
- Создайте персональный API-токен в CircleCI.
- Подключите интеграцию с CircleCI на уровне инстанса ТестОпс.
- Добавьте настроенное подключение к CircleCI в проект ТестОпс.
Настройте связь от CircleCI к ТестОпс:
- Создайте API-токен в ТестОпс.
- Укажите созданный API-токен из ТестОпс в CircleCI.
- Измените пайплайн в CircleCI.
- Запустите и проверьте пайплайн в CircleCI.
- Настройте созданную джобу в ТестОпс.
Параметризируйте джобу в ТестОпс и пайплайн в CircleCI (при необходимости).
1. Настройте связь от ТестОпс к CircleCI
1.1. Создайте API-токен в CircleCI
- Создайте персональный API-токен в CircleCI.
- Сохраните API-токен в безопасном месте, он понадобится для подключения интеграции с CircleCI в ТестОпс.
1.2. Подключите интеграцию с CircleCI на уровне инстанса ТестОпс
Перейдите в ваш инстанс ТестОпс → раздел Администрирование → Интеграции.
Нажмите Добавить интеграцию.
В списке доступных интеграций выберите CircleCI.
Заполните поля:
Название подключения — введите название, которое поможет вам распознать интеграцию (например, CircleCI production).
Endpoint — введите URL-адрес вашего инстанса CircleCI (например, https://circleci.com/).
Тип учетных данных — нажмите на выпадающий список и выберите тип учетных данных CircleCI, который будет поддерживать интеграция:
- Все (глобальные и проектные) — интеграция может работать как с глобальными, так и с проектными учетными данными;
- Только глобальные — интеграция может работать только с глобальными учетными данными;
- Только проектные — интеграция может работать только с проектными учетными данными.
Примечание
Подробнее о поддерживаемых типах учетных данных см. Интеграции с внешними системами → Учетные данные внешних систем.
Если ваш инстанс CircleCI использует самоподписанный SSL-сертификат, уберите галочку напротив Проверка SSL-сертификата.
Если интеграция может работать с глобальными учетными данными CircleCI, в секции Глобальные учетные данные введите API-токен, который вы сохранили на шаге 1.1.
Нажмите Добавить подключение.
В разделе Администрирование → Интеграции появится интеграция с CircleCI с одним автоматически созданным подключением.
1.3. Добавьте настроенное подключение к CircleCI в проект ТестОпс
Чтобы добавить настроенное подключение к CircleCI в нужный проект ТестОпс, воспользуйтесь одним из способов:
В ТестОпс перейдите в раздел Администрирование → Интеграции.
В списке настроенных интеграций найдите и откройте интеграцию с CircleCI.
В списке настроенных подключений найдите и откройте ваше подключение к CircleCI.
Нажмите Добавить в проект.
В списке доступных проектов выберите нужный проект ТестОпс.
Если интеграция может работать и с глобальными, и с проектными учетными данными CircleCI, в поле Тип учетных данных нажмите на выпадающий список и выберите вариант, который будет использоваться в проекте:
- Проектные — использовать проектные учетные данные для подключения к CircleCI;
- Глобальные — использовать глобальные учетные данные для подключения к CircleCI.
Если интеграция будет работать с проектными учетными данными CircleCI, в секции Проектные учетные данные введите API-токен, который вы сохранили на шаге 1.1.
Нажмите Добавить в проект.
2. Настройте связь от CircleCI к ТестОпс
Выполните шаги ниже, чтобы настроить вторую часть двусторонней связи: отправку статусов пайплайнов и результатов тестов из CircleCI в ТестОпс.
2.1. Создайте API-токен в ТестОпс
- Создайте API-токен в ТестОпс.
- Сохраните API-токен в безопасном месте, он понадобится для настройки пайплайна в CircleCI.
2.2. Укажите API-токен из ТестОпс в CircleCI
Добавьте переменную окружения в проект CircleCI, заполнив поля:
- Name — введите ALLURE_TOKEN;
- Value — введите API-токен, который вы сохранили на шаге 2.1.
2.3. Измените пайплайн в CircleCI
Примечание
Измените в пайплайне каждую джобу, которая запускает тесты и участвует в интеграции.
Перейдите в ваш репозиторий CircleCI.
Откройте файл .circleci/config.yml.
Убедитесь, что в параметре
versionуказано значение2.1.Добавьте или расширьте блок
parameters. Он должен включать два строковых параметра:ALLURE_JOB_RUN_ID,ALLURE_USERNAME.
Важно
Для обоих параметров укажите значение по умолчанию
"". Это означает, что параметры можно оставить пустыми при запуске пайплайна в CircleCI, но они должны быть обязательно объявлены. Без этих параметров запуск пайплайна со стороны ТестОпс не будет работать: CircleCI отклоняет запрос, если в нем переданы параметры, которые не объявлены в .circleci/config.yml.Для каждой джобы CircleCI, которая запускает тесты:
В блок
stepsдобавьте первый шаг, который загружает инструмент allurectl и делает его исполняемым.Совет
В приведенном ниже примере используется curl для загрузки файла. Если curl не включен в образ Docker, который вы используете для джобы, используйте wget или аналогичный инструмент.
Вы также можете создать и использовать собственный образ Docker с allurectl.
Добавьте или расширьте блок
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 >>.
Оберните команду, которая запускает тесты, в одну из команд allurectl в зависимости от SSL-сертификата вашего инстанса ТестОпс:
./allurectl watch— если сертификат не самоподписанный../allurectl --insecure 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 watch -- gradle clean test2.4. Запустите и проверьте пайплайн в CircleCI
В CircleCI откройте проект, для которого вы настраиваете интеграцию.
Перейдите к запуску пайплайна, инициированному последним коммитом.
Примечание
Если у вас отключен автоматический запуск пайплайнов после коммитов, выполните запуск вручную.
Дождитесь, когда завершится выполнение пайплайна.
В деталях выполнения пайплайна нажмите на шаг, который запускает тесты.
Ближе к концу лога шага найдите ссылку на запуск в ТестОпс (например,
Report link: https://testops.example.com/jobrun/23).Перейдите по ссылке в ТестОпс и откройте карточку результата одного из тестов.
В левом нижнем углу в секции Из запуска джобы найдите ссылку на пайплайн CircleCI.
Перейдите по ссылке в CircleCI, чтобы убедиться, что она работает корректно.
2.5. Настройте джобу в ТестОпс
Перейдите в ваш проект ТестОпс → раздел Джобы.
В списке будет отображаться новая джоба, автоматически добавленная во время запуска на шаге 2.4.
Напротив добавленной джобы нажмите
⋯→ Настроить.Заполните поля:
- Название — введите название, которое поможет вам распознать джобу.
- Сервер сборки — нажмите на выпадающий список и выберите название подключения к CircleCI, которое вы добавили на шаге 1.2.
- Джоба может быть использована для запуска тестов — поставьте галочку, чтобы пользователи могли запускать джобу из ТестОпс.
Нажмите Отправить.
3. Параметризируйте джобу в ТестОпс и пайплайн в CircleCI
Пайплайны CircleCI могут принимать параметры, которые объявляются в файле .circleci/config.yml. ТестОпс поддерживает эту функциональную возможность через Окружение, которое позволяет задавать параметры для новых джоб ТестОпс и просматривать параметры из пайплайнов, запущенных со стороны CircleCI.
3.1. Укажите параметры в пайплайне CircleCI
Примечание
Измените в пайплайне каждую джобу, которая запускает тесты и участвует в интеграции.
- Перейдите в ваш репозиторий CircleCI.
- Откройте файл .circleci/config.yml.
- В глобальном блоке
parametersобъявите параметры и их значения по умолчанию. - В блоке
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 test3.2. Добавьте глобальные переменные окружения в ТестОпс
Перед тем как использовать значения параметров из пайплайна CircleCI, создайте глобальные переменные окружения на уровне инстанса ТестОпс, которые будут хранить эти данные:
Перейдите в ваш инстанс ТестОпс → раздел Администрирование → Окружения.
Для каждой переменной, которую вы хотите добавить:
- Нажмите + Создать.
- Введите название глобальной переменной.
- Нажмите Отправить.

Важно
Если в репозитории вашего проекта в CircleCI есть несколько веток, обязательно создайте глобальную переменную окружения Branch и передайте ее в вашу джобу. Это специальное имя укажет CircleCI, какую из веток нужно использовать. Если параметр Branch не задан, ТестОпс запускает пайплайн на ветке
master.
3.3. Сопоставьте параметры пайплайна с глобальными переменными окружения в ТестОпс
Перейдите в ваш проект ТестОпс → раздел Настройки → Окружение.
Для каждого параметра, который вы хотите использовать:
- Нажмите + Создать, если параметра нет в списке. Если параметр уже существует, напротив его названия нажмите иконку Редактировать.
- В поле Ключ введите название параметра в CircleCI из шага 3.1.
- В поле Переменная окружения нажмите на выпадающий список и выберите название глобальной переменной в ТестОпс из шага 3.2.
- Нажмите Отправить.

3.4. Добавьте параметры в джобу ТестОпс
Перейдите в ваш проект ТестОпс → раздел Джобы.
Напротив джобы, которую вы хотите параметризировать, нажмите
⋯→ Настроить.Для каждого параметра, который вы хотите использовать, в секции Параметры нажмите + Добавить и заполните поля:
- Название — введите название параметра в CircleCI из шага 3.1.
- Значение — введите значение по умолчанию, такое же, как
defaultиз шага 3.1. - Переменная окружения — нажмите на выпадающий список и выберите название глобальной переменной в ТестОпс из шага 3.2.

Нажмите Отправить.
Удаление подключений и интеграции с CircleCI
Вы можете удалить подключение к интеграции с CircleCI двумя способами — на уровне отдельного проекта (через настройки проекта) или на уровне всего инстанса ТестОпс (через раздел Администрирование).
Удаление подключения на уровне проекта
Важно
Последствия удаления всех подключений из интеграции с CircleCI на уровне проекта:
Подключения к интеграции с CircleCI перестанут отображаться в списке подключений проекта, но продолжат работать в других проектах инстанса, в которых они были добавлены, и сохранятся в разделе Администрирование → Интеграции.
Интеграция с CircleCI перестанет отображаться в списке интеграций проекта, но сохранится в разделе Администрирование → Интеграции.
Связь с инстансом CircleCI будет удалена из джоб ТестОпс, которые относятся к интеграции и находятся в этом проекте:
- Иконки для запуска и обновления этих джоб в разделе Джобы останутся активными.
- ТестОпс не сможет запустить тесты из проекта на стороне CircleCI. После закрытия запуска результаты этих тестов получат статус «Неизвестный».
- Результаты запусков тестов из CircleCI не будут отправляться в проект ТестОпс.
Чтобы удалить подключение на уровне проекта:
- Перейдите в ваш проект ТестОпс → раздел Настройки → Интеграции.
- В списке настроенных интеграций найдите и откройте интеграцию с CircleCI.
- Напротив нужного подключения к CircleCI нажмите
⋯→ Удалить → Да, удалить.
Подключение перестанет работать в вашем проекте.
Удаление подключения на уровне инстанса
Важно
Последствия удаления всех подключений из интеграции с CircleCI на уровне инстанса:
Подключения и интеграция с CircleCI будут полностью удалены.
Связь с инстансом CircleCI будет удалена из всех джоб ТестОпс, которые относятся к интеграции:
- Иконки для запуска и обновления этих джоб в разделе Джобы станут неактивными.
- Результаты запусков тестов из CircleCI не будут отправляться в инстанс ТестОпс.
Чтобы удалить подключение на уровне инстанса:
- Перейдите в ваш инстанс ТестОпс → раздел Администрирование → Интеграции.
- В списке настроенных интеграций найдите и откройте интеграцию с CircleCI.
- В списке настроенных подключений откройте карточку нужного подключения и напротив названия каждого проекта нажмите
⋯→ Удалить из проекта → Да, удалить. - Нажмите Назад в интеграцию, чтобы вернуться к списку подключений.
- Напротив нужного подключения к CircleCI нажмите
⋯→ Удалить → Да, удалить.
Подключение перестанет работать во всех проектах инстанса.

