Инструмент внедрения состояния для тестов
Внедрение состояния на стороне сервера, которое позволяет QA и автоматизации сразу переходить к любому шагу длинного сценария и сокращает подготовку регрессионных тестов с многих минут до менее чем одной.
- Стек
- TypeScript · Playwright · BFF · Test database
Проблема
Чтобы проверить ошибку на шаге 5 длинного сценария, сначала приходилось вручную пройти шаги 1–4: корректные данные, загрузки, проверки. Каждый раз, для каждого pull request и каждого автоматического запуска.
Подход
Инструмент позволяет тестировщику или скрипту открыть приложение сразу в нужном состоянии.
- Скрипт Playwright или специалист QA загружает страницу с безопасным тестовым токеном, например
?state=step_4_ready. - Фронтенд видит токен при гидратации и передаёт его в заголовке в BFF.
- BFF проверяет, что среда строго не боевая, и затем создаёт сессию пользователя в тестовой базе: предыдущие шаги завершены, активный указатель на шаге 4.
- BFF возвращает настоящий токен сессии, и интерфейс сразу показывает шаг 4.
Выбрано внедрение на стороне сервера, а не имитация localStorage на клиенте. Современные приложения проверяют сессии на бэкенде, поэтому мок только на клиенте расходится с реальностью и даёт тесты, которые проходят здесь и падают в продакшене.
Результат
Подготовка регрессионных тестов сократилась с 10–20 минут на цикл до менее чем минуты. При множестве запусков pull request и наборов автоматизации каждую неделю это вернуло сотни инженерных часов в квартал.