End-to-end UI test automation project built with Playwright (Python) and pytest.
The project demonstrates stable UI testing, modern Playwright patterns, and CI integration.
- Playwright (Python)
- pytest
- GitHub Actions (CI)
- Chromium (headless)
- Page Object Model (lightweight, Playwright-style)
- Stable assertions with built-in auto-waits
- Authentication via storage state (no repeated login)
- Screenshots, videos, and traces on test failure
- CI pipeline running tests on every push and pull request
tests/
ui/
test_smoke.py
test_inventory.py
auth/
test_auth_setup.py
pages/
login_page.py
inventory_page.py
pip install -r requirements.txt
python -m playwright install
pytestTests are executed automatically using GitHub Actions on every push and pull request. On failure, Playwright artifacts (trace, screenshot, video) are available for debugging.
- Smoke tests:
tests/ui/test_smoke.py - Inventory tests:
tests/ui/test_inventory.py - Auth setup (storage state):
tests/auth/test_auth_setup.py
pytestpytest -q tests/ui/test_smoke.pypytest -q tests/ui/test_inventory.pyThis project uses Playwright storage state to avoid logging in for every test.
pytest -q tests/auth/test_auth_setup.pyThe file is saved to:
artifacts/storage_state.json