Scenaria — desktop-приложение для записи и автоматического воспроизведения автотестов сайтов. Сценарии хранятся в русском Gherkin (.feature) и выполняются через Playwright.
Подходит для любых сайтов: формы, модалки, навигация, загрузка файлов, проверки.
- Установите зависимости и запустите
python main.py - На вкладке «Старт» нажмите «Открыть примеры сценариев»
- Запустите
01-pervaya-proverka.feature(Ctrl+Enter)
Подробное руководство: docs/GETTING_STARTED.md
Примеры сценариев: examples/
- Запись кликов, ввода, навигации, чекбоксов и др.
- Редактор Gherkin с автодополнением (Ctrl+Space)
- Справка по шагам с категориями (условия, циклы, генераторы…)
- Дерево проекта, поиск, статусы последнего прогона
- TestClient — именованные сессии браузера (cookies/localStorage) через блок
Контекст:в.feature - Условия (
Если …) и циклы (Повторяю,Пока,Для каждого) - Воспроизведение в открытом браузере или headless
- Пакетный запуск всех
.featureв проекте - Экспорт: Gherkin, JSON, ZIP, Playwright (TypeScript / Python)
- CLI для CI без GUI
- Portable EXE (Windows) с автообновлением
Версии пакетов задаются в pyproject.toml. Рекомендуемый способ:
cd scenaria
pip install -e ".[dev]"
python -m playwright install chromium
python -m pytest tests/ -qАльтернатива через обёртки requirements*.txt (те же зависимости):
pip install -r requirements-dev.txtpython main.py# Запуск одного файла или всей папки проекта (headless)
python -m app run ./examples/01-pervaya-proverka.feature
python -m app run ./my-project --junit report.xml
# С видимым браузером
python -m app run ./features --headed
# Экспорт в Playwright
python -m app export ./features/login.feature -o test_login.spec.ts
python -m app export ./features/login.feature --python -o test_login.pymain.py также пробрасывает подкоманды: python main.py run …, python main.py export ….
cd scenaria\scripts
.\build.ps1Результат: dist/Scenaria/ (включая examples/) и dist/Scenaria-Portable.zip. Копируйте всю папку (внутри browsers/ с Chromium).
Подробнее: docs/RELEASE.md — авторелизы GitHub и автообновление portable EXE.
- Проект → Открыть проект… — папка с
.featureфайлами (проводник слева) или примеры со «Старта» - Создать или открыть сценарий (Сценарий → Новый / Открыть…)
- Открыть браузер (Ctrl+B) → при необходимости Начать запись
- Остановить запись — шаги появятся в редакторе
- Сохранить (Ctrl+S) — запись в
.feature - Запустить тест (Ctrl+Enter) — перед запуском Gherkin применяется автоматически
Для сценариев с авторизацией сохраните профиль браузера и укажите его в начале .feature:
Контекст:
Дано я подключаю TestClient "DemoUser"
Сценарий: Проверка под пользователем
…- Запись и тест → TestClient… — войдите на сайт в браузере, сохраните профиль.
- Файлы профилей:
.scenaria/test_clients/<имя>.jsonв папке проекта. - Без блока
Контекст:каждый прогон начинается с чистого браузера.
Пример: examples/05-testclient-kontekst.feature. Подробнее — examples/README.md и Справка → Справка… (F1) → «Сессия и TestClient».
Неприменённые правки в редакторе подсвечиваются баннером «Применить». При запуске теста они применяются сами; для ручного применения: Ctrl+Shift+S.
В панели действий chip с именем файла показывает, какой сценарий открыт (на вкладке «Старт» скрыт).
| Категория | Примеры |
|---|---|
| Навигация | открыт "url", обновляю страницу, возвращаюсь назад |
| Формы и ввод | нажимаю, ввожу, выбираю, отмечаю, загружаю файл |
| Генераторы | ввожу случайный телефон, ввожу "{{first_name}}" |
| Ожидание | жду 2 сек, жду появления, жду исчезновения |
| Проверки | вижу, не вижу, проверяю текст, проверяю url |
| Условия | Если вижу "…", Если url содержит "…" + вложенные шаги |
| Циклы | Повторяю 3 раза, Пока вижу "…", Для каждого "…" как "var" |
| Сессия | закрываю браузер; Контекст: + Дано я подключаю TestClient "…" |
Полный каталог — Ctrl+Space в редакторе или Справка → Справка… (F1), в том числе «Сессия и TestClient».
| Файл | Содержание |
|---|---|
| CHANGELOG.md | История релизов |
| docs/GETTING_STARTED.md | Первые шаги, интерфейс, Gherkin |
| examples/README.md | Готовые примеры для новичков |
| docs/PLAYWRIGHT_EXPORT.md | Экспорт в Playwright (поддерживаемые шаги) |
| docs/RELEASE.md | Сборка, релизы, автообновление |
| docs/VERSIONING.md | SemVer и теги |
| docs/ROADMAP.md | Планы (техдолг, спринты 10+) |
| docs/archive/COMPLETED_SPRINTS.md | Завершённые спринты 1–9 |
| docs/MIGRATION.md | Структура кода (для разработчиков) |
Черновики и настройки: %APPDATA%\Scenaria\ (или data\ рядом с exe в portable-сборке).
Настройки записи (Только важные, Только ссылки, Headless) сохраняются между сеансами.
app/
gherkin_ru.py # парсер/сериализатор Gherkin
gherkin_context.py # блок «Контекст» и TestClient
test_clients.py # профили сессии (.scenaria/test_clients/)
player.py # воспроизведение Playwright
recorder.py # запись из браузера
step_catalog.py # справка и категории шагов
qt/ # интерфейс PySide6 (единая тема и диалоги)
examples/ # примеры сценариев для новичков (01–05)
docs/ # документация
tests/ # pytest
Текущий релиз: v0.12.0 — splash-экран при запуске. См. CHANGELOG.md.
Иконки в интерфейсе — Lucide (MIT License). SVG-разметка встроена в app/qt/lucide_svgs.py.