17 Commits

Author SHA1 Message Date
63b829471d fix: support standard Chromium-GOST installer path (Chromium\Application\chrome.exe) 2026-09-03 15:55:18 +03:00
63194d1824 Test commit 2026-09-03 15:40:00 +03:00
21109221bc feat: add codegen.py for visual test recording with GOST TLS support 2026-09-03 14:29:36 +03:00
fdafff1e3f docs: update Quick Start and Test Execution sections in README.md 2026-09-03 14:24:53 +03:00
162445481b fix: add root Chromium-Gost path candidate and safe console error encoding 2026-09-03 14:07:53 +03:00
cdca9d6003 feat: implement universal runner for standard and GOST TLS
- Add smart two-phase TLS detection with caching in tests/utils/tls.py

- Add auto-discovery for Chromium-GOST and Yandex.Browser

- Add --tls-mode and --ignore-https-errors CLI options

- Update browser_page context with ignore_https_errors and unified viewport

- Add unit tests in tests/utils/test_tls.py

- Update README.md and .env.example
2026-09-03 00:02:36 +03:00
f511102289 feat: customize HTML report Environment block and title
conftest.py (корневой, новый):
  - pytest_sessionstart — заменяет блок Environment:
    Проект / Портал / Окружение / Браузер / Тестировщик
  - pytest_html_report_title — заголовок 'Отчёт E2E тестирования'
  - Использует config.stash[metadata_key] (правильный API
    для pytest-metadata 3.x + pytest-html 4.x)
  - Fallback на config._metadata для старых версий

tests/conftest.py:
  - Убраны дублирующие хуки (перенесены в корневой conftest)

Переменные окружения для кастомизации:
  TEST_ENV     — название среды (по умолчанию 'Production')
  TESTER_NAME  — имя тестировщика (по умолчанию 'QA Team')
2026-09-02 10:42:51 +03:00
d156fa0664 docs: add Playwright Codegen section to README
Описан workflow визуальной записи тестов:
- Команды запуска codegen (с сохранением в файл и без)
- Порядок работы: запуск → авторизация → запись → адаптация
- Полный пример: сырой вывод Codegen → класс с шагами
- Таблица преобразований: что убирается и что добавляется
2026-09-01 23:58:41 +03:00
932d0594a9 docs: add detailed README with run commands and test creation guide
Описаны:
- Структура проекта и иерархия тестов
- Быстрый старт (venv, зависимости, .env)
- Команды запуска: все тесты / по роли / по БП / по шагу
- Полезные флаги pytest (headed/headless, slowmo, -k, --co)
- Шаблон создания нового бизнес-процесса вручную
- Правила именования (папки, файлы, классы, методы, маркеры)
- Инструкция по добавлению ФЛК-генератора
- Инструкция по добавлению статического артефакта
2026-09-01 23:55:23 +03:00
3df40240e7 feat: add vetstation role tests (BP01 Dashboard navigation)
Создана структура тестов для роли 'Ветеринарная станция' по той же
архитектуре что и 01_vetdept.

tests/02_vetstation/
  conftest.py                   — fixtures_dir, shared_state
  fixtures/images/.gitkeep      — папка для фото артефактов
  fixtures/docs/.gitkeep        — папка для документов
  BP01_dashboard/
    test_bp01_dashboard.py      — class TestBP01Dashboard (7 шагов)

BP01 покрывает:
  s01 — Открыть главную страницу (Статистика)
  s02 — Проверить заголовок организации
  s03 — Проверить блок статистики регистрации животных
  s04 — Проверить таблицу последних зарегистрированных особей
  s05 — Перейти в раздел Животные
  s06 — Перейти в раздел Владельцы животных (URL с regex: /owners?type=individual)
  s07 — Перейти в раздел Единый реестр

Удалён старый CodeGen-тест 002_login_test.py
2026-09-01 22:46:27 +03:00
255f0d46b9 feat: test data generators (ФЛК) and static fixtures structure
Добавлена инфраструктура для тестовых данных:

tests/testdata/generators.py — генераторы случайных данных по ФЛК:
  - Раздел 'Животное': gen_animal_name, gen_birth_date
  - Раздел 'Маркировка': gen_microchip (ISO 11784/85), gen_tattoo
  - Раздел 'Владелец': gen_owner_full_name, gen_owner_phone, gen_owner_email
  Каждая функция содержит описание ФЛК правил и пример вывода.
  Файл содержит подробное руководство по добавлению новых генераторов.

tests/01_vetdept/fixtures/ — папка для статических артефактов роли:
  fixtures/images/  ← фото животных
  fixtures/docs/    ← PDF, сертификаты

tests/01_vetdept/conftest.py — добавлена фикстура fixtures_dir (Path),
  возвращает путь к папке артефактов для использования в тестах.

requirements.txt — добавлен faker (генерация русскоязычных данных)
2026-09-01 21:32:49 +03:00
02176b5ccd feat: show step docstrings in pytest-html report Test column
Добавлен хук pytest_runtest_makereport в tests/conftest.py.
Заменяет технический nodeid (путь к файлу::класс::метод[chromium])
на первую строку docstring тестового метода.

Результат в отчёте:
  До:  tests/01_vetdept/BP01_navigation/test_bp01_navigation.py::TestBP01Navigation::test_s01_open_dashboard[chromium]
  После: Шаг 1: Открыть главную страницу (Dashboard)

Правило: что написано в docstring метода — то отображается в отчёте.
2026-09-01 21:11:52 +03:00
e718bf48d4 refactor: hierarchical test architecture (Project > Role > BP > Steps)
Реструктурированы тесты под иерархию Проект > Личный кабинет > БП > Шаги.

Архитектура:
- Бизнес-процесс = Python-класс, шаг = метод класса
- Шаги именуются test_s01_*, test_s02_* и т.д.
- БП именуются BP01_, BP02_ и т.д., каждый в своей папке

Передача данных:
- browser_page (scope=class) — один браузер на весь БП, авторизация 1 раз
- bp_state (scope=class) — словарь для передачи данных между шагами одного БП
- shared_state (scope=session) — словарь для передачи между разными БП

Зависимости шагов (pytest-dependency):
- Если шаг N упал, шаги N+1... получают статус SKIPPED автоматически
- Имена зависимостей: BP01::s01, BP01::s02 и т.д.

Изменения файлов:
- tests/conftest.py: добавлены browser_page и bp_state, вынесены
  вспомогательные функции _get_role и _login, сохранена role_page
  (deprecated) для обратной совместимости
- tests/01_vetdept/conftest.py: новый, содержит shared_state
- tests/01_vetdept/BP01_navigation/: новая папка с тестом навигации
- tests/01_vetdept/001_login_test.py: удалён (переписан в BP01)
- requirements.txt: добавлен pytest-dependency
- pytest.ini: добавлен маркер dependency
2026-08-31 17:37:21 +03:00
c47aeff07d chore: upgrade pytest-html 3.x -> 4.x, fix pytest.ini
- Upgrade pytest-html 3.2.0 to 4.x (совместима с pytest 9.1)
- Убрать пин версии pytest-html==3.2.0 в requirements.txt
- Перенести --html флаг из ручного запуска в pytest.ini addopts,
  чтобы отчёт генерировался автоматически при каждом запуске pytest
- Убрать html_report_dir из pytest.ini (не поддерживается, вызывал
  PytestConfigWarning: Unknown config option)
- Исправить опечатку в маркере vetstation
- Добавить html-report/ и report.html в .gitignore
2026-08-31 11:27:54 +03:00
642ee27588 security: move credentials to .env file
- Remove hardcoded logins/passwords from conftest.py
- Load credentials via python-dotenv from .env (excluded from git)
- Add BASE_URL env variable for easy environment switching
- Add .env.example template for new contributors
- Add validation: clear error message if .env is not filled
- Add python-dotenv to requirements.txt
2026-08-28 10:39:08 +03:00
365796452f feat: initialize end-to-end testing framework with pytest configuration and login test suites 2026-08-27 23:58:31 +03:00
33e65540dc Initial commit 2026-08-27 23:51:24 +03:00