Playwright · Pytest · Allure · Docker
Автотесты сценариев авторизации для сайта: https://www.saucedemo.com/
Проект демонстрирует:
- UI-тестирование в реальном браузере (Chromium) через Playwright
- организацию кода по паттерну Page Object
- генерацию Allure-отчёта
- запуск в Docker / Docker Compose
- Python 3.10
- Playwright (Chromium)
- Pytest
- Allure (allure-pytest)
- Docker / Docker Compose
- Page Object (pages/*)
.
├─ pages/
│ ├─ base_page.py # базовые методы (open, ожидания, проверки)
│ ├─ login_page.py # Page Object страницы логина
│ └─ inventory_page.py # Page Object страницы товаров (inventory)
├─ tests/
│ └─ test_login.py # тесты авторизации
├─ conftest.py # фикстуры (page, base_url), настройки браузера
├─ pytest.ini # настройки pytest (например, verbose/quiet)
├─ requirements.txt # зависимости Python
├─ Dockerfile # сборка окружения для запуска тестов
└─ docker-compose.yml # удобный запуск одной командой
Тесты покрывают сценарии авторизации:
- Успешный логин:
standard_user / secret_sauce
- открытие страницы логина
- ввод корректных данных
- переход на
/inventory.html - проверка отображения ключевых элементов каталога (например, заголовок Products)
- Неверный пароль
- ввод корректного username и неверного password
- остаёмся на странице логина
- проверка появления сообщения об ошибке
- Заблокированный пользователь:
locked_out_user
- попытка логина
- остаёмся на странице логина
- проверка текста ошибки о блокировке
- Пустые поля
- проверка валидации формы при пустом username и/или password
- реализовано параметризацией (несколько кейсов)
performance_glitch_user
- проверка успешного логина и корректного перехода на
/inventory.html - тест учитывает возможные задержки загрузки страницы
Дополнительно в тестах проверяется:
- корректность URL после действия (login или inventory)
- видимость ключевых элементов на страницах
- сообщения об ошибках при негативных сценариях
Ниже два варианта: локально и через Docker.
Windows (PowerShell):
py -3.10 -m venv .venv
.venv\Scripts\Activate.ps1Linux / Mac:
python3.10 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtpython -m playwright install chromiumКороткий вывод:
pytest -q --alluredir=allure-resultsПодробный вывод:
pytest -vv --alluredir=allure-resultsdocker compose up --abort-on-container-exitПосле выполнения:
- тесты завершатся
- результаты Allure сохранятся в папку
allure-results(если volume настроен в compose) - код возврата контейнера
0означает, что все тесты прошли
Результаты пишутся при запуске pytest с ключом:
--alluredir=allure-resultsНужен установленный Allure CLI.
Проверка установки:
allure --versionОткрыть отчёт:
allure serve allure-resultsЕсли команда allure не находится на Windows, установите Allure CLI, например через Scoop:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
scoop install allure
