Перейти к основному содержимому

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

Эта страница описывает, как настроить как ТестОпс, так и GitLab в проекте, который использует GitLab для запуска тестов.

Как и все другие интеграции CI для ТестОпс, это включает двустороннюю связь.

  • Задание в конвейере GitLab будет использовать allurectl для отправки своего статуса и результатов тестов в ТестОпс.
  • ТестОпс будет использовать API GitLab для запуска новых конвейеров, при необходимости передавая тест-план.

После остановки выполнения конвейера соответствующий запуск в ТестОпс может быть закрыт вручную или автоматически в соответствии с политикой автоматического закрытия.

Чтобы включить поддержку ТестОпс в вашем проекте GitLab:

  1. включите отправку данных из GitLab,
  2. включите запуск конвейеров GitLab,
  3. параметризуйте задания (если необходимо).

1. Включите отправку данных из GitLab

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

Затем запустите и проверьте конвейер, чтобы убедиться, что все работает.

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

  1. В ТестОпс нажмите на свой аватар и перейдите в Ваш профиль.

  2. В разделе API токены нажмите Создать.

  3. Введите Имя токена (например, «Токен для GitLab»), затем нажмите Отправить.

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

    Этот токен понадобится вам на следующем шаге.

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

  1. В GitLab откройте проект и перейдите в НастройкиCI/CD.

  2. В разделе Переменные нажмите Добавить переменную.

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

    • ТипПеременная.
    • ВидимостьМаскированная.
    • Ключ — «ALLURE_TOKEN».
    • Значение — API токен, который вы получили на шаге 1.1.
  4. Нажмите Добавить переменную, чтобы закрыть диалоговое окно и сохранить настройки.

1.3. Измените конвейер

Чтобы внести изменения в конвейер, отредактируйте файл .gitlab-ci.yml в вашем репозитории GitLab. Вы можете сделать это либо в локальном каталоге, либо в веб-редакторе текста GitLab (CI/CDРедактор в старой навигации, СборкаРедактор конвейера в новой навигации).

Для каждого задания CI, которое запускает тесты, выполните следующие действия:

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

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

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

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

    • ALLURE_ENDPOINT — URL сервера ТестОпс.
    • ALLURE_PROJECT_ID — ID проекта ТестОпс.
    • ALLURE_RESULTS — путь к каталогу с результатами тестов, например, «build/allure-results». Если в вашем проекте есть несколько каталогов с результатами тестов, вы можете разделить их запятыми или использовать шаблон с подстановочными знаками, например, «modules/*/build/allure-results».
  3. Оберните команду, которая запускает тесты, в команду ./allurectl watch.

К сведению

Пример

Предположим, у нас есть проект на Java с файлом .gitlab-ci.yml такого вида:

test:
stage: test
image: gradle
script:
- gradle clean test

С интеграцией ТестОпс файл будет выглядеть примерно так:

test:
stage: test
image: gradle
variables:
ALLURE_ENDPOINT: https://demo.testops.cloud
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

1.4. Запустите и проверьте конвейер

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

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

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

    Ближе к концу его лога должна быть ссылка на отчет о тестировании в ТестОпс. Убедитесь, что она присутствует и работает.

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

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

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

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

2. Включите запуск конвейеров GitLab

На стороне ТестОпс интеграция с GitLab должна быть настроена на двух уровнях.

Сначала администратор включает интеграцию с сервером GitLab, указав URL сервера.

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

Владелец проекта создает токен аутентификации в GitLab, добавляет его в ТестОпс и настраивает задание в ТестОпс.

2.1. Включите интеграцию с сервером GitLab в ТестОпс

  1. Войдите в ТестОпс, используя учетную запись администратора.

  2. Нажмите на свой аватар и перейдите в АдминистрированиеИнтеграции.

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

  4. В появившемся диалоговом окне выберите GitLab.

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

    • Имя — имя, которое поможет вам распознать сервер GitLab, например, «GitLab production».
    • Конечная точка — URL сервера GitLab, например, «https://gitlab.example.com/».
  6. Если ваш сервер GitLab использует самоподписанный SSL-сертификат, установите флажок Отключить проверку сертификата.

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

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

  1. В GitLab нажмите на свой аватар и перейдите в Настройки.

  2. В меню слева нажмите Токены доступа.

  3. Если форма создания токена не появилась, нажмите Добавить новый токен над списком токенов.

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

    • Имя токена — имя, которое поможет вам распознать токен, например, «Токен для ТестОпс».
    • Дата истечения срока действия — любая дата в пределах года с текущей даты. После этой даты интеграция перестанет работать, и вам нужно будет создать новый токен для продолжения использования интеграции.
    • Выберите области — «api» и «read_api».
  5. Нажмите Создать личный токен доступа.

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

    Этот токен понадобится вам на следующем шаге.

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

2.3. Добавьте токен в проект ТестОпс

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите НастройкиИнтеграции.

  3. В разделе Доступные интеграции найдите интеграцию GitLab и нажмите Добавить интеграцию рядом с ней.

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

    Совет

    Проверьте правильность учетных данных

    Нажмите Проверить соединение. Через несколько мгновений должно появиться сообщение «Соединение установлено».

  5. Нажмите Добавить интеграцию, чтобы закрыть диалоговое окно и сохранить настройки.

2.4. Настройте задание в ТестОпс

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите Задания.

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

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

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

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

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

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


3. Параметризуйте задания

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

В GitLab владелец проекта добавляет переменные и их значения по умолчанию.

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

Важно

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

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

Чтобы внести изменения в конвейер, отредактируйте файл .gitlab-ci.yml в вашем репозитории GitLab. Вы можете сделать это либо в локальном каталоге, либо в веб-редакторе текста GitLab (CI/CDРедактор в старой навигации, СборкаРедактор конвейера в новой навигации).

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

test:
stage: test
image: gradle
variables:
ALLURE_ENDPOINT: https://demo.testops.cloud
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. Для каждого имени параметра, которое вы хотите добавить, нажмите Создать, введите имя нового параметра и нажмите Отправить.

    Обратите внимание, что это имя может быть читаемой меткой и не обязательно должно совпадать с именем из шага 3.1.

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

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

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите НастройкиОкружение.

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

    1. Нажмите Создать, если параметра нет в списке. В противном случае нажмите значок Редактировать рядом с его именем.

    2. В поле Ключ сопоставления укажите имя переменной окружения из шага 3.1.

    3. В поле Переменная окружения выберите глобальное имя параметра из шага 3.2.

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

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

3.4. Добавьте параметры в задание ТестОпс

  1. В ТестОпс перейдите на страницу проекта.

  2. В меню слева нажмите Задания.

  3. Найдите задание, которое вы хотите параметризовать. В меню с тремя точками задания нажмите Настроить.

    Появится диалоговое окно настроек задания, содержащее раздел Параметры.

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

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

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

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