Интеграция с GitLab
Эта страница описывает, как настроить как ТестОпс, так и GitLab в проекте, который использует GitLab для запуска тестов.
Как и все другие интеграции CI для ТестОпс, это включает двустороннюю связь.
- Задание в конвейере GitLab будет использовать allurectl для отправки своего статуса и результатов тестов в ТестОпс.
- ТестОпс будет использовать API GitLab для запуска новых конвейеров, при необходимости передавая тест-план.
После остановки выполнения конвейера соответствующий запуск в ТестОпс может быть закрыт вручную или автоматически в соответствии с политикой автоматического закрытия.
Чтобы включить поддержку ТестОпс в вашем проекте GitLab:
- включите отправку данных из GitLab,
- включите запуск конвейеров GitLab,
- параметризуйте задания (если необходимо).
1. Включите отправку данных из GitLab
Чтобы GitLab отправлял статусы конвейеров и результаты тестов в ТестОпс, вам нужно создать токен аутентификации в ТестОпс, добавить токен в GitLab и изменить сам конвейер.
Затем запустите и проверьте конвейер, чтобы убедиться, что все работает.
1.1. Создайте токен в ТестОпс
-
В ТестОпс нажмите на свой аватар и перейдите в Ваш профиль.
-
В разделе API токены нажмите Создать.
-
Введите Имя токена (например, «Токен для GitLab»), затем нажмите Отправить.
-
В появившемся диалоговом окне нажмите значок Копировать, чтобы скопировать токен в буфер обмена.
Этот токен понадобится вам на следующем шаге.
1.2. Укажите токен в GitLab
-
В GitLab откройте проект и перейдите в Настройки → CI/CD.
-
В разделе Переменные нажмите Добавить переменную.
-
В появившемся диалоговом окне заполните поля:
- Тип — Переменная.
- Видимость — Маскированная.
- Ключ — «ALLURE_TOKEN».
- Значение — API токен, который вы получили на шаге 1.1.
-
Нажмите Добавить переменную, чтобы закрыть диалоговое окно и сохранить настройки.
1.3. Измените конвейер
Чтобы внести изменения в конвейер, отредактируйте файл .gitlab-ci.yml в вашем репозитории GitLab. Вы можете сделать это либо в локальном каталоге, либо в веб-редакторе текста GitLab (CI/CD → Редактор в старой навигации, Сборка → Редактор конвейера в новой навигации).
Для каждого задания CI, которое запускает тесты, выполните следующие действия:
-
Добавьте команду
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 такого вида:
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. Запустите и проверьте конвейер
-
В GitLab откройте проект и перейдите к выполнению конвейера, запущенного последним коммитом.
-
Если выполнение конвейера еще не завершено, дождитесь его завершения.
-
В деталях выполнения конвейера нажмите на задание, которое запускает тесты.
Ближе к концу его лога должна быть ссылка на отчет о тестировании в ТестОпс. Убедитесь, что она присутствует и работает.
-
В отчете о тестировании в ТестОпс откройте результаты одного теста.
Внизу страницы должна быть ссылка обратно на конвейер GitLab. Убедитесь, что она присутствует и работает.
2. Включите запуск конвейеров GitLab
На стороне ТестОпс интеграция с GitLab должна быть настроена на двух уровнях.
Сначала администратор включает интеграцию с сервером GitLab, указав URL сервера.
Затем владелец проекта добавляет включенную интеграцию в свой проект следующим образом.
Владелец проекта создает токен аутентификации в GitLab, добавляет его в ТестОпс и настраивает задание в ТестОпс.
2.1. Включите интеграцию с сервером GitLab в ТестОпс
-
Войдите в ТестОпс, используя учетную запись администратора.
-
Нажмите на свой аватар и перейдите в Администрирование → Интеграции.
-
Нажмите Добавить интеграцию в правом верхнем углу страницы.
-
В появившемся диалоговом окне выберите GitLab.
-
Заполните поля:
- Имя — имя, которое поможет вам распознать сервер GitLab, например, «GitLab production».
- Конечная точка — URL сервера GitLab, например, «https://gitlab.example.com/».
-
Если ваш сервер GitLab использует самоподписанный SSL-сертификат, установите флажок Отключить проверку сертификата.
-
Нажмите Добавить интеграцию.
2.2. Создайте токен в GitLab
-
В GitLab нажмите на свой аватар и перейдите в Настройки.
-
В меню слева нажмите Токены доступа.
-
Если форма создания токена не появилась, нажмите Добавить новый токен над списком токенов.
-
Заполните поля:
- Имя токена — имя, которое поможет вам распознать токен, например, «Токен для ТестОпс».
- Дата истечения срока действия — любая дата в пределах года с текущей даты. После этой даты интеграция перестанет работать, и вам нужно будет создать новый токен для продолжения использования интеграции.
- Выберите области — «api» и «read_api».
-
Нажмите Создать личный токен доступа.
Страница перезагрузится, и вверху появится поле Ваш новый личный токен доступа. Нажмите значок Копировать рядом с ним.
Этот токен понадобится вам на следующем шаге.
Таким же образом вы можете использовать токен доступа к проекту, но имейте в виду, что токен доступа к проекту позволяет работать только с одним проектом.
2.3. Добавьте токен в проект ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Настройки → Интеграции.
-
В разделе Доступные интеграции найдите интеграцию GitLab и нажмите Добавить интеграцию рядом с ней.
-
В появившемся диалоговом окне укажите Токен, который вы получили на шаге 2.2.
СоветПроверьте правильность учетных данных
Нажмите Проверить соединение. Через несколько мгновений должно появиться сообщение «Соединение установлено».
-
Нажмите Добавить интеграцию, чтобы закрыть диалоговое окно и сохранить настройки.
2.4. Настройте задание в ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Задания.
Страница должна содержать новое задание, автоматически добавленное и настроенное во время запуска на шаге 1.4.
-
Нажмите на меню с тремя точками задания, затем выберите Настроить.
-
В появившемся диалоговом окне отредактируйте поля:
- Имя — имя, которое поможет вам распознать задание.
- Сервер сборки — имя интеграции, которую вы добавили на шаге 2.1.
- Задание может быть использовано для запуска тестов — если установлено, пользователи смогут запускать это задание из ТестОпс.
- Параметры — параметры, которые должны быть переданы в GitLab через переменные окружения, см. Окружение.
-
Нажмите Отправить.
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. Добавьте глобальные имена параметров в ТестОпс
-
Войдите в ТестОпс, используя учетную запись администратора.
-
Нажмите на свой аватар и перейдите в Администрирование → Окружение.
-
Для каждого имени параметра, которое вы хотите добавить, нажмите Создать, введите имя нового параметра и нажмите Отправить.
Обратите внимание, что это имя может быть читаемой меткой и не обязательно должно совпадать с именем из шага 3.1.
3.3. Сопоставьте параметры с переменными окружения в ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Настройки → Окружение.
-
Для каждого имени параметра, которое вы хотите использовать:
-
Нажмите Создать, если параметра нет в списке. В противном случае нажмите значок Редактировать рядом с его именем.
-
В поле Ключ сопоставления укажите имя переменной окружения из шага 3.1.
-
В поле Переменная окружения выберите глобальное имя параметра из шага 3.2.
-
Нажмите Отправить.
-
3.4. Добавьте параметры в задание ТестОпс
-
В ТестОпс перейдите на страницу проекта.
-
В меню слева нажмите Задания.
-
Найдите задание, которое вы хотите параметризовать. В меню с тремя точками задания нажмите Настроить.
Появится диалоговое окно настроек задания, содержащее раздел Параметры.
-
Для каждого параметра, который вы хотите использовать, нажмите Добавить и заполните поля:
- Имя — имя переменной окружения из шага 3.1.
- Значение — значение по умолчанию, такое же, как значение из шага 3.1.
- Переменная окружения — глобальное имя параметра из шага 3.2.
-
Нажмите Отправить.