Настройка CI/CD и Test IT для запуска автотестов на Java
🎯 Задача
Настроить запуск автотестов на Java (JUnit 5, Maven) в GitLab CI и Test IT с передачей результатов в Test IT.
💡 Решение
В CI/CD настроим runner (раннер), подключим адаптер Test IT для JUnit, в Test IT создадим вебхуки для запуска автотестов. Если нужно, настроим запуск по расписанию. После настройки каждый запуск автоматически создаст в Test IT прогон с полными результатами тестов.
Перед началом работы
📝 Вам потребуются:
- Репозиторий в GitLab с включенным CI/CD
- Системная роль не ниже, чем Пользователь и проектная роль с возможностями редактирования библиотеки автотестов и выполнения тестов
- Maven-проект с JUnit 5
- Установленный адаптер Test IT для Junit 5
- Test IT с созданными карточками автотестов (подробности в рецепте на примере pytest)
⏱ Время: ≈30-40 мин
Шаг 1: подключаем GitLab Runner
ℹ️ GitLab Runner (раннер) — это агент, который работает вместе с GitLab CI/CD и выполняет задания (jobs). Он нужен для запуска пайплайна (конвейера) в GitLab.
🛠️ Чтобы подключить GitLab Runner:
- Установите раннер по официальной инструкции GitLab.
- Зарегистрируйте раннер по официальной инструкции GitLab.
Раннер отобразится в директории Settings → CI/CD → Runners.
✅ Результат: В GitLab установлен и настроен раннер. Он доступен в директории Settings → CI/CD → Runners и активен. 
Шаг 2: Подключаем адаптер Test IT к проекту Maven
ℹ️ Подробнее о подключении адаптера к проекту Maven
🛠️ Чтобы подключить адаптер к проекту Maven:
- В файл
pom.xmlв dependencies добавьте данные о JUnit 5 и адаптере Test IT:junit-jupitertestit-java-commonstestit-adapter-junit5aspectjweaver,aspectjrtjunit-platform-launcher
- Перезагрузите проект Maven.
📥 Скачать образец файла pom.xml
✅ Результат: Адаптер Test IT подключен к проекту Maven.
Шаг 3: указываем конфигурацию пайплайна GitLab CI
ℹ️ Справка по синтаксису файла .gitlab-ci.yml
🛠️ Чтобы указать конфигурацию пайплайна GitLab CI:
- Добавьте в корень репозитория файл
.gitlab-ci.ymlс нужным пайплайном. - В файле
.gitlab-ci.ymlперед текстомmvn testукажите:- Описание стадии build
- Описание стадии test, содержащее в разделе
src/test/resourcesформированиеtestit.properties
📥 Скачать образец файла .gitlab-ci.yml
✅ Результат: Пайплайн в GitLab CI настроен и готов к работе.
Шаг 4: определяем конфигурацию адаптера и выбираем режим работы
ℹ️ О конфигурации адаптера на GitHub
🛠️ Чтобы сконфигурировать адаптер:
- В корневой папке проекта cоздайте конфигурационный файл
connection_config.ini. - В файле
connection_config.iniукажите необходимые параметры в зависимости от режима работы адаптера (определяется параметромadapterMode):- Mode 0 (используется по умолчанию): загрузка результатов в существующий прогон с фильтрацией
- Mode 1: загрузка результатов в существующий прогон без фильтрации
- Mode 2 (рекомендуется): автоматическое создание нового прогона
Укажите режим работы адаптера
Если не указать режим работы (
adapterMode), будет использован Mode 0, тогда параметрtestRunIdстанет обязательным.Mode 2 (рекомендуется)Описание: Адаптер создает новый прогон в Test IT и отправляет результаты всех запущенных тестов в этот новый прогон.
Когда использовать: Идеально для локальной отладки, первичного подключения и ежедневных запусков без заранее созданного тест-плана. Вам не нужно предварительно ничего создавать в интерфейсе Test IT.
Пример
connection_config.ini:[testit] url = http://192.168.187.81/ privateToken = S2RZUmpiRnp4U1RlRmNmVEcz projectId = 569f28f1-a8f9-4762-b12b-c40955bc63f1 configurationId = be1b1df4-aae6-4f5f-a8df-2be01d5c0311 automaticCreationTestCases = false certValidation = false adapterMode = 2Mode 0 (по умолчанию)Описание: Адаптер фильтрует тесты по ID прогона и ID конфигурации, и отправляет результаты в этот же прогон.
Когда использовать: Когда прогон уже сформирован в интерфейсе Test IT (в нем лежит определенный набор тестов), и вам нужно запустить локально строго этот набор, проигнорировав остальные автотесты в вашем проекте.
Пример connection_config.ini:
[testit] url = http://192.168.187.81/ privateToken = S2RZUmpiRnp4U1RlRmNmVEcz projectId = 569f28f1-a8f9-4762-b12b-c40955bc63f1 configurationId = be1b1df4-aae6-4f5f-a8df-2be01d5c0311 automaticCreationTestCases = false certValidation = false adapterMode = 0 testRunId = 98765432-10ab-cdef-9876-543210fedcbaMode 1Описание: Адаптер отправляет результаты всех запущенных тестов в существующий прогон без фильтрации. Дополнительно можно задать фильтрацию через использование утилиты командной строки Test IT CLI.
Когда использовать: В системе уже есть прогон, и вы хотите запустить все локальные тесты и загрузить их результаты в этот прогон.
Пример
connection_config.ini:[testit] url = http://192.168.187.81/ privateToken = S2RZUmpiRnp4U1RlRmNmVEcz projectId = 569f28f1-a8f9-4762-b12b-c40955bc63f1 automaticCreationTestCases = false certValidation = false adapterMode = 1 testRunId = 98765432-10ab-cdef-9876-543210fedcba
📝 Параметры конфигурации (список)
| # | Параметр | Обязательный | Описание |
|---|---|---|---|
| 1 | url | Да | URL Test IT |
| 2 | privateToken | Да | API-токен В Test IT: Настройки профиля → Безопасность |
| 3 | projectId | Да | GUID проекта из URL В Test IT: Проекты → Меню действий → Скопировать ID |
| 4 | configurationId | Рекомендуется | GUID конфигурации (если не указать — результаты попадут в Any). В Test IT: Конфигурации → Меню действий → Скопировать GUID |
| 5 | testRunId | Для Mode 0-1 | GUID существующего прогона Test IT В Test IT: Прогоны → Меню действий → Скопировать ID |
| 6 | testRunName | Нет | Название прогона (для Mode 2) |
| 7 | adapterMode | Важно | Выбор режима: 0, 1 или 2. По умолчанию: 0. |
| 8 | automaticCreationTestCases | Нет | true — создавать ручные кейсы из автотестов false (по умолчанию) — не создавать |
| 9 | automaticUpdationLinksToTestCases | Нет | true — обновлять связи автотестов с кейсами false (по умолчанию) — не обновлять |
| 10 | certValidation | Нет | true (по умолчанию) — проверять SSL-сертификат false — для самоподписанных сертификатов |
| 11 | importRealtime | Нет | true (по умолчанию) — отправлять каждый тест сразу после выполнения false — собрать все и отправить пакетом |
| 12 | testIt | Нет | true (по умолчанию) — включить интеграцию с Test IT false — отключить интеграцию с Test IT |
✅ Результат: В корневой папке проекта находится файл connection_config.ini, определяющий конфигурацию адаптера, включая режим его работы.
Шаг 5: создаем вебхуки в Test IT
ℹ️ Для управления автотестами из Test IT нужно создать вебхук для события Запуск автотестов. Подробнее о вебхуках в Test IT.
🛠️ Чтобы создать вебхук:
- Следуйте инструкции в документации Test IT. При создании вебхука укажите:
- URL: URL репозитория CI/CD
- Тип запроса: POST (выбран по умолчанию)

- Параметры URL: Ветку GitLab; токен GitLab; параметр
TEST_RUN_IDсо значением$TEST_RUN_ID
⚠️ Возможные трудности для серверной версии, установленной в Docker Compose
Если Test IT развёрнут на виртуальной машине и сам обращается к GitLab по HTTPS (например, по вебхуку), возможны проблемы с сертификатом. В таких случаях:
- В
.env-файл сервера Test IT попробуйте добавить:INSECURE_REMOTES=git.example.com:443(подставьте хост и порт вашего GitLab).
Подробнее об .env-файле Test IT.
✅ Результат: В проекте Test IT (Вебхуки → Настройка) создан вебхук для запуска автотестов.
Шаг 6: Делаем пробный прогон автотестов
ℹ️ После запуска автотестов в Test IT будут созданы карточки автотестов и прогон. Можно будет работать с автотестами из интерфейса Test IT.
🛠️ Для проверки нужно запустить автотесты:
- Из GitLab: Сделайте push ветки.
При успешном запуске в GitLab появится пайплайн, а в Test IT — новый прогон Run с результатами по всем автотестам. - Из интерфейса Test IT: Запустите несколько автотестов, следуя инструкции.
При успешном запуске в GitLab будет запущен пайплайн с переменнойTEST_RUN_ID, в Test IT будет создан прогон, содержащий выбранные тесты.
✅ Результат: В разделе Автотестирование → Библиотека автотестов Test IT находятся карточки с метаданными автотестов. В разделе Автотестирование → Прогоны Test IT находятся прогоны с результатами автотестов.
GitLab CI настроен для запуска автотестов и передачи результатов в Test IT. Следующий шаг — настройка расписания запусков в GitLab — опциональный.
Шаг 7: настраиваем запуск по расписанию (scheduler)
ℹ️ Документация GitLab о настройке расписания
🛠️ Чтобы запускать все автотесты по расписанию (например, выполнять ночной прогон):
- В GitLab откройте ваш проект, затем перейдите в Build → Pipeline schedules → New schedule.
- Укажите:
- Описание прогона
- Целевую ветку (например, main — она должна совпадать с ветками, указанными в rules
.yml-файла) - Интервал в формате cron (время в UTC). Примеры:
- 0 2 * * — каждый день в 02:00 UTC
- 0 /6 * * — каждые 6 часов
- /3 * * * * — каждые 3 минуты (удобно для проверки)
- Опционально: В расписании задайте дополнительные переменные (например, переопределить
TMS_*)
- Сохраните изменения.
При срабатывании расписания пайплайн запускается так же, как при выполнении команды push.
✅ Результат: В проекте GitLab в разделе Build → Pipeline schedules создано расписание прогонов. Когда расписание активно, прогоны автоматически выполняются по расписанию. 