Idiomatic Python automation framework demonstrating the pytest ecosystem patterns valued in data-engineering, DevOps, and Python-native organisations — built against the same QA Lab target as all Cross-Stack Series frameworks.
pytest 8.2 · Playwright-Python 1.44 · allure-pytest 2.13 · pytest-xdist 3.5 · Python 3.12
Rich Allure HTML report published to GitHub Pages after every CI run. Features @allure.feature / @allure.story / @allure.severity hierarchy, parametrized test breakdowns, and failure screenshots attached automatically.
allure-pytest 2.13 · GitHub Pages View Report →GitHub Actions workflow: smoke tests on every push, full regression on main with -n 4 parallel workers, scheduled Monday 09:00 UTC. mypy strict type check and ruff lint gate before test execution.
GitHub Actions · ubuntu-latest View Runs →Full Python project: Page Objects with @allure.step, conftest.py fixture hierarchy, data/form_data.py dataclasses, pytest.ini + pyproject.toml configuration, GitHub Actions workflow.
Public · MIT License View Repository →Python is the dominant language in data engineering, ML infrastructure, DevOps tooling, and API-first organisations. Teams in these environments expect pytest fluency, type-annotated code, and Allure-grade reporting as table stakes — not as extras bolted on top.
This is Stack 2 of the Cross-Stack Series — the same QA Lab target tested with different frameworks to enable direct, evidence-based comparison. The framework demonstrates idiomatic Python automation: yield fixtures, conftest hierarchy, dataclasses for test data, and @pytest.mark.parametrize for data-driven coverage.
Key differentiator vs Stack 1 (Playwright TS): Python’s yield fixture model and @pytest.mark.parametrize produce more expressive, composable test code than TypeScript’s base.extend() equivalent — a real trade-off worth understanding per team context.
Every decision reflects real Python ecosystem requirements:
13 QA Lab UI sections covered across 12 test files. Same automation surface targeted in every Cross-Stack Series framework.
Latest GitHub Actions run · May 9, 2026 · ubuntu-latest · View all runs →
Python ecosystem stack — every tool justified by real-world team requirements. Zero proprietary or paid dependencies.
Same target, different stacks. Five frameworks built against the same QA Lab UI to produce evidence-based comparisons — not vendor benchmarks.
Python-native load testing in the same virtual environment as the pytest suite. Locust is ecosystem-native to the Python stack — HttpUser with @task decorators, same venv, same CI job. No toolchain switch. Part of the Cross-Stack Performance Series.
Built-in HTML report generated via --html report.html on every CI run. Includes RPS timeline, response time percentiles, failure breakdown. Retained 14 days as GitHub Actions artifacts. FINDINGS.md documents CDN framing and SLO rationale.
Runs as a separate CI job after the pytest suite passes. Headless mode: --headless -u N -r R -t Ts. --exit-code-on-error 1 gates the build on SLO breach. Smoke on every push; baseline on main; weekly Monday schedule.
Scripts in performance/locust/locustfiles/: smoke, baseline, and CDN cold/warm scenarios. catch_response=True for explicit per-response pass/fail. Interactive Web UI available at localhost:8089 for local exploration.