Интеграция с CI-системой GitLab
Интеграция с CI-системой GitLab позволяет:
- автоматически передавать результаты тестов из пайплайна GitLab в ТестОпс с помощью allurectl;
- запускать пайплайн GitLab из интерфейса ТестОпс через запуск джобы;
- синхронизировать статус запуска пайплайна сразу в обеих системах — ТестОпс и GitLab.
В настроенной интеграции одна джоба ТестОпс соответствует одному пайплайну GitLab, а один запуск джобы — одному запуску соответствующего пайплайна.
Примечание
Чтобы настроить или удалить интеграцию в ТестОпс, вы должны иметь доступ к разделам:
- Администрирование — необходимы права администратора инстанса;
- Настройки в конкретном проекте — необходима роль владельца этого проекта.
Настройка интеграции
Чтобы настроить интеграцию с CI-системой GitLab:
Настройте связь от ТестОпс к GitLab:
Создайте токен в GitLab.
На уровне инстанса ТестОпс добавьте интеграцию с GitLab, указав:
- название интеграции;
- URL-адрес GitLab.
На уровне инстанса или проекта ТестОпс включите добавленную интеграцию для проекта, указав созданный токен из GitLab.
Настройте связь от GitLab к ТестОпс:
- Создайте API-токен в ТестОпс.
- Укажите созданный API-токен из ТестОпс в GitLab.
- Измените пайплайн в GitLab.
- Запустите и проверьте пайплайн в GitLab.
- Настройте созданную джобу в ТестОпс.
Параметризируйте джобу в ТестОпс и пайплайн в GitLab (если необходимо).
1. Настройте связь от ТестОпс к GitLab
1.1. Создайте токен в GitLab
В GitLab нажмите на ваш аватар и перейдите в раздел Preferences.
В сайдбаре слева перейдите в раздел Access Tokens.
Если форма создания токена не появилась, над списком токенов нажмите Add new token.
Заполните поля:
- Token name — название, которое поможет вам распознать токен, например, Токен для ТестОпс.
- Expiration date — срок действия токена. После указанной даты интеграция перестанет работать. Чтобы возобновить ее работу, вам нужно будет создать новый токен.
В секции Select scopes поставьте галочки напротив api и read_api.
Нажмите Create personal access token.
После обновления страницы вы должны увидеть созданный токен.
Нажмите иконку копирования под Your new personal access token, чтобы скопировать токен в буфер обмена.
Cохраните токен в безопасном месте, он понадобится для настройки интеграции в проекте ТестОпс.
Совет
Вы также можете использовать токен доступа проекта (project access token) вместо личного токена доступа, но в этом случае интеграция будет ограничена одним проектом.
1.2. Добавьте интеграцию с GitLab в ТестОпс
Перейдите в ваш инстанс ТестОпс.
Перейдите в раздел Администрирование → Интеграции.
Нажмите + Добавить интеграцию в правом верхнем углу.
В списке доступных интеграций выберите GitLab.
Заполните поля:
- Название — название, которое поможет вам распознать интеграцию, например, GitLab production.
- Endpoint — URL-адрес инстанса GitLab, например, https://gitlab.example.com/.
Если ваш инстанс GitLab использует самоподписанный SSL-сертификат, поставьте галочку напротив Отключить проверку сертификата.
Нажмите Добавить интеграцию.
1.3. Включите интеграцию для проекта ТестОпс
Чтобы включить интеграцию в нужном проекте ТестОпс, воспользуйтесь одним из способов:
- Перейдите в раздел Администрирование → Интеграции.
- В списке настроенных интеграций найдите и откройте вашу интеграцию с GitLab.
- Перейдите на вкладку Проекты.
- Справа от поля поиска нажмите
+. - В выпадающем списке Проект выберите нужный проект ТестОпс.
- В секции Секрет введите токен доступа GitLab, который вы сохранили на шаге 1.1.
- Нажмите Проверить соединение. Если токен указан верно, через несколько секунд появится сообщение «Соединение установлено».
- Нажмите Добавить интеграцию.
2. Настройте связь от GitLab к ТестОпс
Выполните шаги ниже, чтобы настроить вторую часть двусторонней связи: отправку статусов пайплайнов и результатов тестов из GitLab в ТестОпс.
2.1. Создайте токен в ТестОпс
В ТестОпс нажмите на ваш аватар и перейдите в раздел API-токены.
Нажмите + Токен.
Введите название токена, которое поможет вам распознать интеграцию, например, Токен для GitLab.
Нажмите Создать.
ТестОпс сгенерирует токен и отобразит его в модальном окне.
Нажмите иконку Копировать, чтобы скопировать токен в буфер обмена.
Cохраните токен в безопасном месте, он понадобится для настройки интеграции в GitLab.
2.2. Укажите токен в GitLab
В GitLab откройте проект, для которого вы настраиваете интеграцию.
В сайдабре слева перейдите в раздел Settings → CI/CD.
Раскройте раздел Variables.
В секции Project variables нажмите Add variable.
В появившемся окне заполните поля:
- Type — Variable;
- Visibility — Masked;
- Key — ALLURE_TOKEN;
- Value — API-токен, который вы сохранили на шаге 2.1.
Нажмите Add variable, чтобы сохранить настройки.
2.3. Измените пайплайн в GitLab
Примечание
Вам необходимо изменить в пайплане каждую джобу, которая запускает тесты и участвует в интеграции.
В GitLab откройте репозиторий, для которого вы настраиваете интеграцию.
Откройте файл .gitlab-ci.yml.
Добавьте команду
before_script, которая загружает allurectl и делает его исполняемым.Совет
В приведенном ниже примере используется curl для загрузки файла. Если curl не включен в образ Docker, который вы используете для джобы, используйте wget или аналогичный инструмент.
Вы также можете создать и использовать собственный образ Docker с allurectl.
Добавьте или расширьте блок
variables. Он должен включать переменные со значениями:ALLURE_ENDPOINT— URL-адрес инстанса ТестОпс.ALLURE_PROJECT_ID— ID проекта ТестОпс.ALLURE_RESULTS— путь к директории с результатами тестов, например, build/allure-results. Если в вашем проекте несколько директорий с результатами тестов, вы можете разделить их запятыми или использовать шаблон с подстановочными символами, например, modules/*/build/allure-results.
Оберните команду, которая запускает тесты, в команду
./allurectl watch.
Пример изменения пайплайна
Предположим, вы работаете с Java-проектом, в котором файл .gitlab-ci.yml выглядит следующим образом:
yaml
test:
stage: test
image: gradle
script:
- gradle clean testЧтобы настроить интеграцию с ТестОпс, вам необходимо изменить файл по примеру ниже:
yaml
test:
stage: test
image: gradle
variables:
ALLURE_ENDPOINT: https://testops.example.com
ALLURE_PROJECT_ID: 1
ALLURE_RESULTS: build/allure-results
before_script:
- curl -fsSL https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64 -o allurectl
- chmod +x allurectl
script:
- ./allurectl watch -- gradle clean test2.4. Запустите и проверьте пайплайн в GitLab
В GitLab откройте репозиторий, для которого вы настраиваете интеграцию.
Перейдите к запуску пайплайна, инициированному последним коммитом.
Примечание
Если у вас отключен автоматический запуск пайплайнов после коммитов, выполните запуск вручную.
Дождитесь, когда завершится выполнение пайплайна.
В деталях выполнения пайплайна нажмите на джобу, которая запускает тесты.
Ближе к концу лога найдите ссылку на запуск в ТестОпс.

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

Перейдите по ссылке в GitLab, чтобы убедиться, что она работает корректно.
2.5. Настройте джобу в ТестОпс
Перейдите в ваш проект ТестОпс.
Перейдите в раздел Джобы.
Страница должна содержать новую джобу, автоматически добавленную и настроенную во время запуска на шаге 2.4.
Нажмите
⋯напротив джобы, затем выберите Настроить.В появившемся окне отредактируйте поля:
- Название — название, которое поможет вам распознать джобу.
- Сервер сборки — выберите название интеграции, которую вы добавили на шаге 1.2.
- Джоба может быть использована для запуска тестов — если установлено, пользователи смогут запускать эту джобу из ТестОпс.
- Параметры — параметры, которые должны быть переданы в GitLab через переменные окружения (см. Окружение).

Нажмите Отправить.
3. Параметризируйте джобы
GitLab использует переменные окружения для передачи параметров в пайплайны. ТестОпс интегрирует эту функцию с собственной концепцией Окружения, которая позволяет вам как задавать параметры для новых джоб, так и видеть параметры, установленные для джоб, запущенных вне ТестОпс.
Важно
Если в репозитории вашего проекта есть несколько веток, обязательно создайте переменную окружения Branch в ТестОпс и передайте ее в вашу джобу. Это специальное имя укажет GitLab, какую из веток нужно использовать.
3.1. Установите значения по умолчанию в GitLab
Примечание
Вам необходимо изменить в пайплане каждую джобу, которая запускает тесты и участвует в интеграции.
В GitLab откройте репозиторий, для которого вы настраиваете интеграцию.
Откройте файл .gitlab-ci.yml.
Добавьте переменные и их значения по умолчанию в блок
variablesпайплайна или джобы. Например:yamltest: stage: test image: gradle variables: ALLURE_ENDPOINT: https://testops.example.com ALLURE_PROJECT_ID: 1 ALLURE_RESULTS: build/allure-results PRODUCT_VERSION: "1.23" TESTS_BROWSER: chrome before_script: - curl -fsSL https://github.com/allure-framework/allurectl/releases/latest/download/allurectl_linux_amd64 -o allurectl - chmod +x allurectl script: - ./allurectl watch -- gradle clean test
3.2. Добавьте глобальные переменные окружения в ТестОпс
Перейдите в ваш инстанс ТестОпс.
Перейдите в раздел Администрирование → Окружения.
Для каждой переменной, которую вы хотите добавить:
- Нажмите + Создать.
- Введите глобальное название переменной.
- Нажмите Отправить.

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

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

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

