Параметризация вебхуков в Test IT на примере GitLab CI и Playwright
🎯 Задача
Создать в GitLab гибкий пайплайн, чтобы динамически настраивать один вебхук на запуск автотестов в Playwright и с его помощью задавать настройки прогона.
💡 Решение
Использовать вебхук, параметры которого разделены на типы:
- Базовые параметры — определяются Test IT автоматически (например, идентификатор проекта)
- Параметры конфигурации — определяют, на чем тестируем (браузер + разрешение).
- Пользовательские (кастомные) параметры — определяют особенности конкретного запуска автотестов: использование фильтрации, количество воркеров, тип загрузки результатов (в реальном времени или по окончании прогона).
📋 Показать/скрыть таблицу параметров
| # | Тип параметра | Переменная Test IT | Когда задается | Примеры |
|---|---|---|---|---|
| 1 | Базовые параметры | $SERVER_URL, $PROJECT_ID, $CONFIGURATION_IDS, $TEST_RUN_ID | Значения подставляются системой автоматически | - |
| 2 | Параметры конфигурации | $CONFIGURATIONS_PARAMETERS[KEY] | Заранее, при создании конфигурации | browser, viewport |
| 3 | Пользовательские параметры | $CUSTOM_PARAMETERS[KEY] | При каждом запуске автотестов из Test IT | adapterMode, workers, importRealtime |
Перед началом работы
📝 Вам потребуются:
- Репозиторий в GitLab с включенным CI/CD и настроенным GitLab Runner
- Проект Test IT с подключенными автотестами Playwright и адаптером для Playwright
- Системная роль не ниже Пользователь и проектная роль с правами на запуск автотестов и настройку вебхуков
- Триггер-токен для GitLab (trigger token). Настраивается в директории: Settings → CI/CD → Pipeline triggers. Инструкция GitLab.
- API-токен Test IT в GitLab CI/CD Variables (TMS_PRIVATE_TOKEN)
⏱ Время: ≈40–60 мин
Базовую настройку адаптера Playwright и раннера смотрите в рецептах:
- Настройка CI/CD и Test IT для запуска автотестов на Java
- Настройка адаптера pytest и первый локальный прогон автотестов.
Этот рецепт описывает только параметризацию вебхука.
Шаг 1: создаем конфигурации
Как это работает
При запуске автотестов тестировщик выбирает конфигурацию — значения browser и viewport подставятся в вебхук автоматически через $CONFIGURATIONS_PARAMETERS[browser] и $CONFIGURATIONS_PARAMETERS[viewport]. Указывать их вручную не нужно.
ℹ️ Playwright нативно поддерживает Chromium, Firefox и WebKit, а также настройку viewport. Одна конфигурация соответствует одному профилю запуска "браузер + разрешение".
🛠️ Создайте в Test IT 9 конфигураций для 3 браузеров: Chrome, Firefox, WebKit и 3 разрешений: 1920x1080, 1920x1200, 2560x1440. 📋 Показать/скрыть матрицу конфигураций
# Конфигурация Параметр browserПараметр viewport1 Chrome / FHD chromium1920x1080 2 Chrome / WUXGA chromium1920x1200 3 Chrome / 2K chromium2560x1440 4 Firefox / FHD firefox1920x1080 5 Firefox / WUXGA firefox1920x1200 6 Firefox / 2K firefox2560x1440 7 WebKit / FHD webkit1920x1080 8 WebKit / WUXGA webkit1920x1200 9 WebKit / 2K webkit2560x1440
- В каждую конфигурацию добавьте параметры с ключами
browserиviewport.
✅ Результат: В проекте Test IT есть набор конфигураций "браузер + разрешение", каждая с параметрами browser и viewport.
Шаг 2: настраиваем пользовательские параметры проекта
ℹ️ Пользовательские параметры привязаны к проекту, а не к конфигурации. Их значение задается при каждом запуске в Test IT.
🛠️ В проекте Test IT создайте пользовательские параметры:
- В параметрах используйте следующие ключи и значения:
# Ключ Значения Назначение 1 adapterModeall_tests,filter_testsРежим работы адаптера при запуске из Test IT 2 workers1,2,4…Число параллельных воркеров playwright 3 importRealtimetrue,falseРежим отправки результатов в Test IT
Режимы adapterMode для вебхука:
all_tests— запускаются все автотесты проекта. Результаты вносятся в существующий прогон Test IT.filter_tests— запускаются только автотесты из выбранного прогона (фильтр через Test IT CLI). Результаты вносятся в существующий прогон.
✅ Результат: В проекте Test IT созданы кастомные параметры adapterMode, workers, importRealtime.

Шаг 3: настраиваем playwright
ℹ️ playwright.config.ts считывает параметры viewport и workers из переменных окружения, которые передает GitLab CI.
🛠️ В файле playwright.config.ts настройте конфигурацию.
В
playwright.config.tsукажите переменныеprojectsпод три браузера и динамическийviewport:import { defineConfig, devices } from '@playwright/test'; const viewport = { width: parseInt(process.env.VIEWPORT_WIDTH || '1920', 10), height: parseInt(process.env.VIEWPORT_HEIGHT || '1080', 10), }; const workers = parseInt(process.env.WORKERS || '1', 10); export default defineConfig({ workers, use: { screenshot: 'only-on-failure', viewport, }, projects: [ { name: 'chromium', use: { ...devices['Desktop Chrome'], viewport } }, { name: 'firefox', use: { ...devices['Desktop Firefox'], viewport } }, { name: 'webkit', use: { ...devices['Desktop Safari'], viewport } }, ], reporter: [['line'], ['testit-adapter-playwright']], });
При запуске CI выполняется команда:
npx playwright test --project=$BROWSER --workers=$WORKERS
Браузер выбирается по имени проекта (chromium, firefox, webkit), viewport — из VIEWPORT_WIDTH / VIEWPORT_HEIGHT.
✅ Результат: playwright готов принимать браузер, разрешение и число воркеров из переменных CI (CI variables).
Шаг 4: настраиваем .gitlab-ci.yml
ℹ️ Один .yml-файл обрабатывает все сценарии: парсит параметры, выбирает команду запуска, передает настройки адаптеру.
🛠️ Укажите ключевые элементы пайплайна.
- Дефолтные значения (применяются, если параметр не передан или передан пустым):
# Переменная Дефолтное значение 1 adapterModefilter_tests2 WORKERS13 IMPORT_REALTIMEfalse4 BROWSERchromium5 VIEWPORT1920x1080
Логика режимов адаптера (adapterMode) в CI:
all_tests→ npx playwright test --project=$BROWSER --workers=$WORKERSfilter_tests→ testit autotests_filter → npx playwright test ... --grep "$FILTER"
📋 Передача параметров адаптеру (показать/скрыть таблицу)
| # | CI variable | Env для адаптера | Источник |
|---|---|---|---|
| 1 | URL | TMS_URL | Вебхук (стандартная) |
| 2 | PROJECT_ID | TMS_PROJECT_ID… | Вебхук (стандартная) |
| 3 | CONFIGURATION_ID | TMS_CONFIGURATION_ID | Вебхук (стандартная) |
| 4 | TEST_RUN_ID | TMS_TEST_RUN_ID | Вебхук (стандартная) |
| 5 | IMPORT_REALTIME | TMS_IMPORT_REALTIME | Пользовательский параметр |
📥 Скачать образец файла .gitlab-ci.yml из репозитория примера
✅ Результат: Pipeline в GitLab принимает параметры из вебхука и запускает Playwright с нужным браузером, разрешением и настройками адаптера.
Шаг 5: создаем вебхук в Test IT
🛠️ Создайте вебхук для запуска автотестов с типом запроса POST и URL: https://[gitlab-host]/api/v4/projects/[project_id]/trigger/pipeline
📋 Показать/скрыть таблицу параметров
| # | Параметр | Значение | Тип |
|---|---|---|---|
| 1 | ref | master (или ваша ветка) | Фиксированное |
| 2 | token | trigger token GitLab | Фиксированное |
| 3 | variables[URL] | $SERVER_URL | Стандартная переменная Test IT |
| 4 | variables[PROJECT_ID] | $PROJECT_ID | Стандартная переменная Test IT |
| 5 | variables[TEST_RUN_ID] | $TEST_RUN_ID | Стандартная переменная Test IT |
| 6 | variables[CONFIGURATION_ID] | $CONFIGURATION_IDS | Стандартная переменная Test IT |
| 7 | variables[BROWSER] | $CONFIGURATIONS_PARAMETERS[browser] | Параметр конфигурации |
| 8 | variables[VIEWPORT] | $CONFIGURATIONS_PARAMETERS[viewport] | Параметр конфигурации |
| 9 | variables[adapterMode] | $CUSTOM_PARAMETERS[adapterMode] | Пользовательский параметр |
| 10 | variables[WORKERS] | $CUSTOM_PARAMETERS[workers] | Пользовательский параметр |
| 11 | variables[IMPORT_REALTIME] | $CUSTOM_PARAMETERS[importRealtime] | Пользовательский параметр |

Важно про пользовательские параметры в URL вебхука!
Если в URL вебхука указан $CUSTOM_PARAMETERS[KEY], а при запуске параметр не заполнен — Test IT может не отправить вебхук или передать пустое значение. В .gitlab-ci.yml предусмотрены дефолты: пустые и невалидные значения нормализуются автоматически (adapterMode → filter_tests, WORKERS → 1, IMPORT_REALTIME → false).
✅ Результат: В проекте Test IT создан вебхук, передающий параметры конфигурации и кастомные параметры в GitLab pipeline.
⚠️ Возможные трудности для
серверной версии Test IT (развернуть/свернуть)
- Если Test IT обращается к GitLab по HTTPS с самоподписанным сертификатом, добавьте в
.env-файл сервера Test IT:INSECURE_REMOTES=git.example.com:443(укажите хост GitLab). Подробнее: Настройка CI/CD и Test IT для запуска автотестов на Java.
Шаг 6: делаем пробный прогон
ℹ️ Файл playwright.config.ts считывает параметры viewport и workers из переменных окружения, которые передает GitLab CI.
🛠️ Запустите тесты из интерфейса Test IT:
- Выберите автотесты и нажмите Запустить.
- В модальном окне выберите конфигурацию (например, Firefox / 2K) — browser и viewport подставятся автоматически.
- Укажите кастомные параметры или оставьте их пустыми (в этом случае применятся значения по умолчанию).
- Нажмите Создать прогон и запустить автотесты.

- По окончании прогона убедитесь, что:
- В логах GitLab
- GitLab принял значение переданных параметров из вебхука.
- Playwright успешно применил эти параметры при запуске автотестов.
- В Test IT:
- В прогоне указаны результаты автотестов.
- Конфигурация прогона соответствует выбранной вами конфигурации.
- В логах GitLab
✅ Результат: Один вебхук и один файл .gitlab-ci.yml покрывают кросс-браузерный прогон с разными разрешениями и гибкой настройкой адаптера и Playwright.
📧 Идеями и вопросами можно поделиться в Центре помощи или официальном сообществе.