Skip to content

Kseolis/task-manager-playwright-autotest

Repository files navigation

Task Manager Playwright Autotests

Production-ready test framework для E2E тестирования Task Manager приложения.

Проект реализует лучшие практики Staff SDET уровня:

  • Test Independence: полная изоляция тестов
  • Factory Pattern: гибкое создание тестовых данных
  • Test Pyramid: 70% unit, 20% integration, 10% E2E
  • Observability: структурированное логирование
  • Resilience: retry логика, Circuit Breaker
  • CI/CD: Quality Gates, параллелизация

Быстрый старт

  • Установка зависимостей:
make install
  • Запуск приложения локально (dev):
make run
  • Запуск линтера:
make lint

Запуск автотестов

Playwright-конфигурация поднимает dev-сервер автоматически через webServer (см. playwright.config.js), поэтому отдельно стартовать npm run dev обычно не нужно.

  • Запуск тестов через Makefile:
make test
  • Запуск тестов через npm:
npm test
  • Дебаг режим:
npm run test:debug
  • UI режим:
npm run test:ui
  • Открыть HTML-репорт:
npm run test:report
  • Unit-тесты (Vitest):
npm run test:unit          # Запуск unit-тестов
npm run test:unit:watch    # Watch режим
npm run test:unit:coverage # С coverage отчетом
  • Все тесты:
npm run test:all           # Unit + E2E тесты

Архитектура

Проект следует Test Pyramid принципу:

     📊 E2E (10%) - полные пользовательские сценарии
   🔄 Integration (20%) - API, workflows, contracts
  🟢 Unit (70%) - хелперы, фабрики, утилиты

Структура тестов

  • tests/e2e/ - E2E тесты (Playwright)
    • smoke/ - быстрые smoke тесты (<30 секунд)
  • tests/integration/ - Integration тесты
    • api/ - API integration тесты
    • workflows/ - Business workflow тесты
  • tests/unit/ - Unit тесты (Vitest)
    • factories/ - тесты фабрик
    • helpers/ - тесты хелперов
  • tests/contracts/ - Contract тесты
  • tests/factories/ - Factory Pattern для данных
  • tests/helpers/ - Вспомогательные функции
  • tests/pages/ - Page Object Model

Паттерны

  • Page Object Model: изоляция UI логики
  • Factory Pattern: создание тестовых данных
  • Test Data Registry: автоматическая очистка
  • API Client: управление данными через API
  • Structured Logging: детальное логирование

Подробнее в документации.

CI/CD (GitHub Actions)

Проект настроен с улучшенным CI/CD pipeline:

1. CI Pipeline (.github/workflows/ci.yml)

Запускается при push/PR в main или develop:

  • Lint: ESLint проверка
  • Unit Tests: быстрые тесты хелперов
  • E2E Tests: полные тесты (параллельно)
  • Quality Gates: проверка всех результатов

2. Nightly Tests (.github/workflows/nightly.yml)

Запускается каждый день в 2:00 UTC:

  • Тесты на всех браузерах (chromium, firefox, webkit)
  • Matrix стратегия для параллелизации
  • Можно запустить вручную через workflow_dispatch

3. Test Report (.github/workflows/report.yml)

Автоматическая генерация отчетов после CI/Nightly тестов

Настройка секретов в GitHub

Для работы CI/CD добавьте в Settings → Secrets → Actions:

  • BASE_URL (опционально) - URL приложения для тестов

Переменные окружения

  • BASE_URL: базовый URL приложения (по умолчанию http://localhost:5173)
  • EXPECT_TIMEOUT: таймаут ожиданий expect() в мс (по умолчанию 5000)
  • CI: при наличии включает forbidOnly, retries=2, workers=1 и отключает автопоказ HTML-репорта
  • LOG_LEVEL: уровень логирования (0=DEBUG, 1=INFO, 2=WARN, 3=ERROR, по умолчанию 1)

Документация

Метрики качества

  • Test Independence: 100% тестов работают изолированно
  • Code Coverage: ≥80% для production кода (цель)
  • Test Execution Time: <5 минут для полного suite
  • Flaky Tests: 0% flaky тестов
  • Fast Feedback: Unit <100ms, Integration <1s, E2E <10s каждый

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages