Skip to content

qa-guru/getting-started-python-playwright

Repository files navigation

Playwright Python Automation Framework

Автоматизированный тестовый фреймворк на базе Playwright для Python с использованием Page Object Model (POM) паттерна.

📋 Оглавление

🎭 Что такое Playwright?

Playwright — это современный фреймворк для автоматизации тестирования веб-приложений, разработанный Microsoft. Он позволяет автоматизировать браузеры Chromium, Firefox и WebKit через единый API.

Основные преимущества Playwright:

  • Кросс-браузерное тестирование — поддержка Chromium, Firefox и WebKit
  • Автоматическое ожидание — встроенные умные ожидания элементов
  • Быстрая работа — параллельное выполнение тестов
  • Мощные возможности — перехват сетевых запросов, моки, скриншоты, видео
  • Отладка — встроенный trace viewer для анализа выполнения тестов
  • Надежность — автоматические повторные попытки и ожидания

🚀 Установка

1. Клонирование репозитория

git clone <repository-url>
cd getting-started-python-playwright

2. Установка зависимостей

pip install -r requirements.txt

3. Установка браузеров Playwright

# Установка всех браузеров
playwright install

# Установка только Chromium
playwright install chromium

# Установка браузеров с системными зависимостями
playwright install --with-deps

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

Базовые команды

# Запуск всех тестов
pytest

# Запуск с подробным выводом
pytest -v

# Запуск конкретного тестового файла
pytest tests/test_todo.py

# Запуск конкретного теста
pytest tests/test_todo.py::test_new_year_checklist

# Запуск тестов по маркерам
pytest -m plw

Запуск с визуальным интерфейсом (headed mode)

# Запуск с открытым браузером
pytest --headed

# Запуск конкретного теста с браузером
pytest tests/test_todo.py::test_new_year_checklist --headed

Запуск с отладкой и трейсингом

# Запуск с включенным трейсингом (для отладки)
pytest -m plw --headed --tracing on

# Запуск с трейсингом и скриншотами
pytest -m plw --headed --tracing on --screenshot on

# Запуск с трейсингом, скриншотами и видео (сохраняется при падении)
pytest -m plw --headed --tracing on --screenshot on --video retain-on-failure

Запуск с отчетами Allure

# Генерация отчета Allure
pytest --alluredir=allure-results

# Просмотр отчета Allure
allure serve allure-results

# Генерация статического отчета
allure generate allure-results -o allure-report --clean

💡 Полезные команды

Отладка тестов

# Запуск с остановкой на breakpoint
pytest tests/test_example.py::test_todo_add_item --headed --pdb

# Запуск с максимальным выводом
pytest -vvv --tb=short

# Запуск только упавших тестов из предыдущего запуска
pytest --lf  # last failed

Работа с браузерами

# Запуск тестов в конкретном браузере
pytest --browser chromium
pytest --browser firefox
pytest --browser webkit

# Запуск во всех браузерах
pytest --browser all

Просмотр trace файлов

После запуска тестов с --tracing on, trace файлы сохраняются в test-results/. Для просмотра:

# Открыть trace viewer
playwright show-trace test-results/path/to/trace.zip

Очистка результатов тестов

# Удаление папки с результатами
rm -rf test-results/

# Удаление кэша pytest
rm -rf .pytest_cache/

🔗 Полезные ссылки

Официальная документация

Обучающие материалы

Инструменты и расширения

Сообщество

Дополнительные ресурсы

🏗️ Архитектура

Page Object Model (POM)

Проект использует паттерн Page Object Model для организации кода:

  • Pages (pages/) — классы, представляющие страницы приложения
  • Helpers (helpers/) — вспомогательные утилиты и настройки
  • Tests (tests/) — тестовые сценарии

Централизованные настройки

Все URL проекта хранятся в helpers/settings.py в виде ENUM:

from helpers.settings import URLs

# Использование
page.goto(URLs.DEMO_TODOMVC.value)

Фикстуры и конфигурация

  • conftest.py — содержит общие фикстуры pytest
  • Автоматическое создание скриншотов при падении тестов
  • Интеграция с Allure для отчетов

Используемые технологии

  • Playwright — автоматизация браузеров
  • Pytest — фреймворк для тестирования
  • Allure — генерация отчетов
  • axe-playwright-python — тестирование доступности (accessibility)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages