User Flow Tester: сценарные E2E-тесты
Опишите важные пользовательские операции шагами — вход, покупка, поиск — и получите готовые тесты Playwright с защитой от запуска на production. Инструмент проверит сценарии по опубликованным правилам, покажет покрытие маршрутов и разберёт отчёт прогона.
Бесплатно, без регистрации
Сценарии
Как работает инструмент
Сценарии из шагов
Сценарий — это название, теги, флаг «критичный», стартовый маршрут, вид устройства и заметка о состоянии входа. Шаги — переходы, действия, ожидания и проверки. Элементы ищутся так, как советует документация Playwright: по роли и имени, подписи поля или test id.
Проверки по правилам
Каждое замечание — правило с ID, уровнем и доказательством: хрупкий селектор, сценарий без финальной проверки, пароль в открытом виде, пауза по времени. Ошибочные шаги в код не попадают — вместо них комментарий с ID правила.
Код Playwright Test
Один файл tests/e2e/<сценарий>.spec.ts на сценарий, test.step с понятным названием на каждый шаг, @critical в заголовке, скриншоты на именованных шагах. Плюс playwright.config.ts с трассировкой при повторе, скриншотами при падении, повторами в CI и отчётами list, html и json.
Покрытие и результаты
Вставьте список маршрутов или sitemap.xml и отметьте важные — инструмент покажет, какие из них не открывает ни один сценарий. После прогона загрузите JSON-отчёт: статусы, длительность, ошибки, вложения, нестабильные тесты и сравнение с прошлым прогоном.
Открыть страницу
- Группа
- переход
- Нужен элемент
- —
Нажать
- Группа
- действие
- Нужен элемент
- да
Заполнить поле
- Группа
- действие
- Нужен элемент
- да
Выбрать вариант
- Группа
- действие
- Нужен элемент
- да
Отметить флажок
- Группа
- действие
- Нужен элемент
- да
Снять флажок
- Группа
- действие
- Нужен элемент
- да
Нажать клавишу
- Группа
- действие
- Нужен элемент
- по желанию
Навести курсор
- Группа
- действие
- Нужен элемент
- да
Ждать: текст на странице
- Группа
- ожидание
- Нужен элемент
- —
Ждать: адрес страницы
- Группа
- ожидание
- Нужен элемент
- —
Ждать: ответ сервера
- Группа
- ожидание
- Нужен элемент
- —
Проверить: элемент виден
- Группа
- проверка
- Нужен элемент
- да
Проверить: элемент скрыт
- Группа
- проверка
- Нужен элемент
- да
Проверить: текст элемента
- Группа
- проверка
- Нужен элемент
- да
Проверить: адрес
- Группа
- проверка
- Нужен элемент
- —
Проверить: заголовок вкладки
- Группа
- проверка
- Нужен элемент
- —
Проверить: количество
- Группа
- проверка
- Нужен элемент
- да
Скриншот
- Группа
- прочее
- Нужен элемент
- —
Пауза по времени (запрещено)
- Группа
- прочее
- Нужен элемент
- —
Защита от запуска на production
- Адрес стенда берётся только из переменной STAGING_URL; в шагах — пути от корня (/catalog), абсолютные адреса запрещены правилом UFT-T13.
- playwright.config.ts останавливает запуск до первого теста, если STAGING_URL не задан, не является адресом http(s), совпадает с production-хостом или не входит в белый список staging-хостов.
- Пароли, токены, PIN и данные карт подставляются из переменных окружения (env:ИМЯ → process.env.ИМЯ). Литерал, похожий на секрет, в код не попадает (UFT-T06, UFT-T07).
- Команды запуска — в README: npx playwright install, затем STAGING_URL=… npx playwright test --grep @critical.
Правила проверки
Таблица строится из того же кода, что и проверки в инструменте.
UFT-P01
- Уровень
- ошибка
- Правило
- Не указан ни один staging-хост
- Что сделать
- Добавьте хост staging в белый список — без него конфигурация остановит запуск.
UFT-P02
- Уровень
- ошибка
- Правило
- Хост есть и в staging, и в production
- Что сделать
- Уберите production-хост из белого списка staging.
UFT-P03
- Уровень
- предупреждение
- Правило
- Строка не похожа на хост
- Что сделать
- Укажите хост без пути: staging.example.com или localhost:3000.
UFT-S01
- Уровень
- ошибка
- Правило
- Сценарий никуда не переходит
- Что сделать
- Укажите стартовый маршрут или добавьте шаг «Открыть страницу».
UFT-S02
- Уровень
- ошибка
- Правило
- Повторяющееся название сценария
- Что сделать
- Названия должны различаться: по ним результаты прогона сопоставляются со сценариями.
UFT-S03
- Уровень
- предупреждение
- Правило
- Сценарий не заканчивается проверкой
- Что сделать
- Добавьте в конец «Проверить…» — иначе тест пройдёт, даже если результат действия неверный.
UFT-S04
- Уровень
- предупреждение
- Правило
- Поле заполнено, но дальше ничего не проверяется
- Что сделать
- После ввода добавьте проверку результата (адрес, текст, сообщение).
UFT-S05
- Уровень
- ошибка
- Правило
- В сценарии нет шагов
- Что сделать
- Добавьте хотя бы одно действие и одну проверку.
UFT-T01
- Уровень
- ошибка
- Правило
- У шага не заполнено обязательное поле
- Что сделать
- Заполните поле — шаг без него не генерируется.
UFT-T02
- Уровень
- предупреждение
- Правило
- CSS-селектор вместо роли, подписи или test id
- Что сделать
- CSS ломается при смене вёрстки. Используйте роль и имя, подпись поля или data-testid.
UFT-T03
- Уровень
- предупреждение
- Правило
- XPath-селектор
- Что сделать
- XPath привязан к структуре DOM. Замените на роль, подпись или test id.
UFT-T04
- Уровень
- предупреждение
- Правило
- Выбор по позиции (nth-child, nth, eq)
- Что сделать
- Порядок элементов меняется. Найдите элемент по имени или test id.
UFT-T05
- Уровень
- ошибка
- Правило
- Пауза по времени запрещена
- Что сделать
- Замените паузу ожиданием текста, адреса или ответа сервера — код для паузы не генерируется.
UFT-T06
- Уровень
- ошибка
- Правило
- Значение похоже на секрет
- Что сделать
- Используйте env:ИМЯ — значение возьмётся из переменной окружения. Литерал в код не попадёт.
UFT-T07
- Уровень
- ошибка
- Правило
- Пароль или код вписан прямо в сценарий
- Что сделать
- Для паролей, токенов, PIN и данных карт используйте env:ИМЯ. Литерал в код не попадёт.
UFT-T08
- Уровень
- ошибка
- Правило
- Неверное имя переменной окружения
- Что сделать
- Имя — латиница в верхнем регистре, цифры и _: env:E2E_USER_EMAIL.
UFT-T09
- Уровень
- совет
- Правило
- Нажатие по тексту, а не по роли
- Что сделать
- Роль с именем точнее: кнопка «Войти» не совпадёт с абзацем, где есть слово «Войти».
UFT-T10
- Уровень
- предупреждение
- Правило
- Роль без доступного имени
- Что сделать
- Без имени под роль обычно попадает несколько элементов — тест упадёт на строгом режиме.
UFT-T11
- Уровень
- предупреждение
- Правило
- Ожидание ответа не стоит перед действием
- Что сделать
- Ставьте «Ждать: ответ сервера» прямо перед действием, которое шлёт запрос, — генератор объединит их.
UFT-T12
- Уровень
- ошибка
- Правило
- Неизвестная клавиша
- Что сделать
- Примеры: Enter, Tab, Escape, ArrowDown, Control+A.
UFT-T13
- Уровень
- ошибка
- Правило
- Абсолютный адрес вместо пути
- Что сделать
- Пишите путь от корня (/catalog): адрес стенда берётся из STAGING_URL и проходит защиту от production.
UFT-C01
- Уровень
- предупреждение
- Правило
- Важный маршрут не покрыт сценариями
- Что сделать
- Добавьте сценарий, который открывает маршрут или проверяет переход на него.
Ограничения
- Сгенерированный код — отправная точка: имена кнопок, подписи полей и маршруты должны совпадать с вашим интерфейсом. Запустите тесты на staging и поправьте шаги, которые не нашли элемент.
- Состояние входа описывается заметкой: готовые storageState и фикстуры авторизации инструмент не создаёт.
- Покрытие маршрутов считает только переходы и проверки адреса в сценариях; переход по ссылке без проверки адреса покрытием не считается.
- Из отчёта берутся имена и пути вложений — сами скриншоты и трассировки не загружаются. Сопоставление тестов со сценариями идёт по названию (без тегов) или имени файла.
- Зелёный прогон не гарантирует отсутствие ошибок: тесты проверяют только то, что в них описано.
Приватность
- Сценарии, маршруты и отчёты обрабатываются в вашем браузере и сами никуда не отправляются; адрес страницы не меняется.
- Черновик и версии хранятся только в этом браузере (localStorage); «Очистить всё» удаляет их. Импортированные прогоны хранятся в сокращённом виде — без тел вложений.
- В аналитику уходит только факт экспорта или импорта и категория (тип файла, есть ли падения) — без названий, шагов и адресов.
- Результат уходит к нам, только если вы сами оставите заявку и не снимете галочку «Приложить результат» — что именно уйдёт, видно в форме: сценарии с шагами, покрытие маршрутов и итоги последнего прогона. Хосты staging и production, значения полей, тексты ошибок и вложения в заявку не попадают.
Похожие инструменты
Все инструменты · 40
Готовность к релизуМатрица проверок с доказательствами: CI, миграции, резервные копии, план отката, мониторинг, исключения из рисков и согласование → решение GO / NO-GO.
Screenshot → Bug: баг-репорт по скриншотуСкриншот или видео → скрытие приватных данных, разметка проблемы, шаги воспроизведения, проверка человеком и экспорт в GitHub, GitLab или Jira.
API Mock Studio: тестовый APIИмпорт OpenAPI или ручные endpoints → тестовые данные, разные HTTP-ответы, задержки и ошибки, журнал запросов, проверка контракта и готовый mock-сервер.
Проверка согласованности интерфейсаDesign tokens против CSS: цвета и размеры вне системы, контраст по WCAG, сравнение скриншота с утверждённым baseline и разбор найденного.
Проверка спроса до разработкиГипотезы с порогами, лендинг и форма заявки, UTM-ссылки, воронка, интервью и отчёт эксперимента → решение продолжать, менять или закрывать идею.
Конструктор коммерческого предложенияШаблоны КП для IT-проектов: состав, этапы, смета, сроки, допущения и исключения, версии с контролем цифр, согласование и PDF.Нужен аудит тестов и релизного процесса?
Проверим, какие пользовательские операции защищены тестами, где тесты хрупкие и что мешает выпускать без страха. Объём и стоимость — после короткого брифа.
- Первый короткий разговор бесплатный — выбираем формат работы
- NDA — по вашему или нашему шаблону
- Стоимость — после брифа и согласования объёма