Automation Framework Portfolio

QA Automation Frameworks

Production-style QA automation examples across Playwright, Selenium, Java, Python, and TypeScript. The repo focuses on maintainable test design, API coverage, Dockerized execution, shared demo services, and failure artifacts that make debugging easier.

3 framework examples
UI + API coverage patterns
Docker + CI same execution path
Artifacts screenshots, video, trace

Tech Stack

Selenium • Playwright • RestAssured • JUnit 5 • Pytest • TypeScript • Java • Python • Docker Compose • Nginx • Node.js • GitHub Actions • Allure

What This Project Demonstrates

Key Outcomes

Playwright (TypeScript)

Modern Playwright framework with Page Object Model, reusable fixtures, API coverage, integrated reporting, and Dockerized execution against shared demo services. Includes a retry demo that fails on the first attempt to produce screenshot, video, and retry trace artifacts.

Selenium (Python)

Pytest-based Selenium framework with reusable fixtures, failure screenshots, and a shared demo app fallback that matches the Dockerized execution model.

Selenium (Java + API)

Java framework combining Selenium UI tests and RestAssured API tests with JUnit 5, Allure reporting, clear suite separation for UI and API execution, and shared local or Docker-backed demo services.

How It Works

Each framework is isolated in its own folder and can run independently. UI automation uses Selenium or Playwright, API coverage uses RestAssured or Playwright request contexts, and GitHub Actions publishes the latest generated reports.

Docker is used to provision a consistent execution environment across local runs and CI. The shared demo UI is served over HTTP with Nginx, the demo API is provided as a lightweight Node.js service, and the framework containers run against the same environment shape that is used in GitHub Actions.

Highlighted Example Flows

The published reports include a few targeted examples that make the framework behavior easier to review than generic pass or fail output.

Retry and Artifact Flow

The Playwright suite includes a dedicated rerun test that fails once and passes on retry so the report captures the exact artifacts engineers usually need during triage: failure screenshot, retained video, and first-retry trace.

In the published report, open demo-rerun.spec.ts, then Demo retry flow, then fails once for artifacts and passes on rerun.

Authentication State

The Playwright auth-state example logs in once, saves browser storage state, and verifies that a fresh browser context can reopen the app without repeating the login flow.

In the published report, open auth-state.spec.ts, then Authentication state, and review save storage state after login and reuse saved storage state without logging in again.

Shared Schema Validation

The API consumer tests validate shared JSON response contracts, so structure changes are caught at the test layer before they turn into UI or integration surprises.

Review the API suites in the Playwright and Selenium Java reports. The contract checks are embedded in api.spec.ts, UserApiTest, and MessageApiTest.

Documentation Notes

The most complete implementation walkthrough lives in the Selenium Java README. The Playwright README documents retry behavior and artifact retention, while the Python example stays intentionally small and focused on fixture-driven Selenium basics. The root README documents the shared Docker architecture and one-command execution path.

Contact