← ПроектыQA · Automation · 2024–2026
HanDev QA Orchestrator
Платформа для централизованного запуска Playwright-тестов: проекты, прогоны, suite, environments, секреты, defect rules, quality gates, расписания, API-токены, AI-классификация падений. Тесты живут в репозиториях клиентов; QA клонит репо per-run и запускает в Docker-контейнере. Очередь BullMQ с настраиваемой concurrency.
- BullMQ workers: git clone → docker run → парсинг JSON-репорта → INSERT
- AI-классификация дефектов по errorHash, авто-генерация баг-репортов
- Quality gates: блокировка деплоя при просадке pass-rate или нарушении классификации
- Артефакты (HTML report, traces, видео) за forward-auth по подписанным URL
Node 22Fastify 5BullMQPlaywrightReact 18

Задача
У студии накопилась критическая масса проектов с Playwright-тестами в разных репозиториях с разной CI. Не было единого окна, где видно, что упало, где и почему; флак-тесты тонули в общем шуме; quality gates считать руками. Нужна платформа, которая централизованно запускает тесты, считает quality gates и быстро находит реальные дефекты.
Что сделали
- Доменная модель: project → repository config / environments / suites / secrets / schedules / runs / tests, плюс defect_rules, quality_gates, notification_channels, api_tokens, members.
- API на Fastify + Drizzle с матрицей прав на уровне проекта: viewer / runner / maintainer / admin. 9 пермишенов: view, trigger_run, set_defect, manage_schedules, manage_config, manage_secrets, manage_members, trigger_ai, configure_ai.
- BullMQ workers: run-test-runner (git clone → docker run → парсинг JSON-репорта → INSERT) и run-scheduler (30-секундный cron-tick + watchdog + cleanup).
- Bind mounts (не named volumes) — воркер сам стартует Playwright-контейнеры через docker socket, daemon резолвит пути на хосте.
- API-токены qaop_* для CI: создание прогона через webhook POST /webhooks/runs с Authorization: Bearer.
- Артефакты (HTML report, traces, видео) отдаются nginx-ом за forward-auth: отчёт открывается только тому, кому он положен, по короткоживущей подписанной ссылке.
- AI-классификация: defect_rules сопоставляют ошибки с типами дефектов; кластеризация падений по errorHash; авто-генерация баг-репортов.
- Quality gates: правила на pass-rate / длительность / классификацию дефектов; при просадке прогон помечается failed и блокирует деплой.
Результат
- Все Playwright-проекты студии в одном дашборде. Первый подключённый — DieAlltagsfeen.
- Реальный прогон #1 на DieAlltagsfeen: 119 тестов, 116 пройдено, 3 fail, 14 минут 1 секунда, suite smoke, environment dev, branch SHA 3bbf1a25.
- HTML report Playwright кликается прямо из карточки прогона, артефакты под подписанными URL.
- Статистика на горизонте 30 дней: pass rate по suite, длительность по suite, top flaky тестов, распределение типов дефектов.
- Настройки проекта в 8 вкладках: Общие / Репозиторий / Окружения / Suites / Секреты / Defect rules / Quality Gates / API tokens.