Skip to content

Интеграция с CI-системой GitLab

Интеграция с CI-системой GitLab позволяет:

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

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

Примечание

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

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

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

Чтобы настроить интеграцию с CI-системой GitLab:

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

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

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

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

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

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

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

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

  1. В GitLab нажмите на ваш аватар и перейдите в раздел Preferences.

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

  3. Если форма создания токена не появилась, над списком токенов нажмите Add new token.

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

    • Token nameназвание, которое поможет вам распознать токен, например, Токен для ТестОпс.
    • Expiration dateсрок действия токена. После указанной даты интеграция перестанет работать. Чтобы возобновить ее работу, вам нужно будет создать новый токен.
  5. В секции Select scopes поставьте галочки напротив api и read_api.

  6. Нажмите Create personal access token.

    После обновления страницы вы должны увидеть созданный токен.

  7. Нажмите иконку копирования под Your new personal access token, чтобы скопировать токен в буфер обмена.

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

Совет

Вы также можете использовать токен доступа проекта (project access token) вместо личного токена доступа, но в этом случае интеграция будет ограничена одним проектом.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. В сайдабре слева перейдите в раздел SettingsCI/CD.

  3. Раскройте раздел Variables.

  4. В секции Project variables нажмите Add variable.

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

    • TypeVariable;
    • VisibilityMasked;
    • KeyALLURE_TOKEN;
    • ValueAPI-токен, который вы сохранили на шаге 2.1.
  6. Нажмите Add variable, чтобы сохранить настройки.

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

Примечание

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

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

  2. Откройте файл .gitlab-ci.yml.

  3. Добавьте команду before_script, которая загружает allurectl и делает его исполняемым.

    Совет

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

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

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

    • ALLURE_ENDPOINTURL-адрес инстанса ТестОпс.
    • ALLURE_PROJECT_IDID проекта ТестОпс.
    • ALLURE_RESULTSпуть к директории с результатами тестов, например, build/allure-results. Если в вашем проекте несколько директорий с результатами тестов, вы можете разделить их запятыми или использовать шаблон с подстановочными символами, например, modules/*/build/allure-results.
  5. Оберните команду, которая запускает тесты, в команду ./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 test

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

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

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

    Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Важно

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

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

Примечание

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

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

  2. Откройте файл .gitlab-ci.yml.

  3. Добавьте переменные и их значения по умолчанию в блок variables пайплайна или джобы. Например:

    yaml
    test:
      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. Добавьте глобальные переменные окружения в ТестОпс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Важно

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

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

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

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

Во время удаления интеграции с CI-системой GitLab также будет удалена интеграция с таск-трекером GitLab. Подробнее о последствиях см. Интеграция с таск-трекером GitLab → Удаление интеграции.

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

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

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

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

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

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

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

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