Skip to content

nirtal85/Playwright-Python-Example

Playwright Logo

Enterprise-Grade Playwright Python Architecture

The Ultimate Boilerplate for Scalable, Robust, and Modern UI Automation

Twitter Follow YouTube Architecture by TestShift CI Status Nightly Build Tests uv Ruff

View Live ReportRead The DocsReport Bug


🚀 About The Project

This repository is a Production-Ready Reference Architecture for building next-generation test automation using Playwright and Python.

It goes beyond basic scripts to demonstrate a fully scalable framework with advanced features like Accessibility Testing (A11y), visual tracing, and cloud integration, tailored for modern DevOps pipelines.

Automation College - Playwright Python Course

✨ Key Features

  • Modern Tooling: Powered by uv for blazing fast package management and Ruff for linting.
  • Accessibility First: Integrated Axe scans to ensure your app is accessible to everyone.
  • Deep Debugging: Full integration with Playwright Traces and Video recording linked directly to Allure Reports.
  • Cloud Scale: Native integration with BrowserStack for cross-browser testing on real devices.
  • CI/CD Optimization: Parallel execution strategies and dynamic version syncing for GitHub Actions.

📃 Articles written about this project

This project implements the concepts discussed in the following TestShift articles:


🛠️ Tech Stack

Tool Description & Why We Use It
Playwright The modern standard for reliable, flaky-free browser automation.
Pytest The most powerful testing framework for Python.
Axe Playwright For automated accessibility (A11y) compliance testing.
Allure For beautiful, data-rich test reports including Traces & Video.
Pytest Split To intelligently split test suites for parallel execution.
Requests For API interactions and test data setup.

🌐 Cloud Testing Provider

This project is powered by BrowserStack, enabling high-scale cross-browser and mobile testing on real devices in the cloud.


⚙️ Getting Started

1. Clone

git clone https://github.com/nirtal85/Playwright-Python-Example
cd playwright-python

2. Install (The Modern Way)

We use uv for lightning-fast installations.

Windows (PowerShell):

python -m pip install uv
python -m uv venv
.venv\Scripts\Activate.ps1
uv sync --all-extras --dev
playwright install

Mac/Linux:

python3 -m pip install uv
uv venv
source .venv/bin/activate
uv sync --all-extras --dev
playwright install

🏃‍♂️ Execution

Run all tests (Chromium by default):

pytest

Run specific suite (Tags):

pytest -m sanity

📊 Results, Traces & Debugging

We use Allure for reporting. To generate and open the report locally:

npx -y allure generate allure-results --output allure-report --open

👉 See a Live Example of the Report Here

🕵️‍♀️ Using the Trace Viewer

Navigate to the Playwright Trace Viewer.

Drag & Drop the trace file (located in test-results/) generated after a failure.

Time Travel: Move back and forth in the timeline to see exactly what happened (Network, DOM, Console).


Found this project useful? If this architecture helped you solve a problem or save time, consider supporting the work!

Buy Me A Coffee


Visit TestShift.com for more Architectural Insights

About

Enterprise-Grade Playwright Python Architecture 🎭 | Production-Ready Boilerplate with Pytest, Allure.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors

Languages