π Language / Idioma
π¬π§ English Β | Β πͺπΈ EspaΓ±ol
Enterprise-ready E2E automation framework built with Playwright for Java, JUnit 5, and Maven, designed to showcase scalable QA automation design, maintainability, clean architecture, and reporting readiness.
This repository is positioned as a QA Automation portfolio project that demonstrates more than automated checks. It shows how to structure a maintainable Java-based framework with:
- Playwright for Java for modern browser automation
- JUnit 5 for structured test execution
- Maven for dependency and build management
- Page Object Model (POM) for clean abstraction and reuse
- Allure reporting for execution evidence
- Logging and reusable utilities for maintainability
- Tag / group-based execution strategy
- Scalable architecture ready to evolve toward CI/CD
This project demonstrates Java QA automation best practices, including maintainable architecture, reporting, reusable components, and structured documentation.
This repository contains an end-to-end automation framework for SauceDemo using:
- Playwright for Java
- JUnit 5
- Maven
- Allure Report
- Page Object Model
- Log4j / SLF4J logging
- DataFaker-based test data support
π Application under test: https://www.saucedemo.com/
π Repository: https://github.com/CarlosArman/PlaywrightJava
- β Login validation
- β Shopping validation
- β Item detail coverage
- β Footer coverage
- β Burger menu coverage
- β Cart coverage
- β Checkout information coverage
- β Java + JUnit 5 based automation design
- β Page Object Model architecture
- β Reusable utilities and shared flows
- β Group-based execution support
- β Allure-ready reporting
- β Structured logging configuration
- β Clean separation between tests, pages, models, utilities, and data
- β Clean automation architecture in the Java ecosystem
- β Practical evidence generation strategy
- β Clear documentation and project organization
- β Easy onboarding for reviewers and recruiters
- β Strong comparison point against a TypeScript + Cucumber implementation
- Language: Java 17+
- Automation Framework: Playwright for Java
- Testing Framework: JUnit 5
- Build Tool: Maven
- Design Pattern: Page Object Model (POM)
- Reporting: Allure Results / Allure Report
- Logging: Log4j / SLF4J
- Test Data: DataFaker
- Application Under Test: SauceDemo
PlaywrightJava
βββ src/
β βββ main/
β β βββ java/
β β βββ resources/ # Main resources and global configuration
β βββ test/
β βββ java/
β β βββ annotations/ # Custom annotations and execution groups (e.g. Smoke, Regression)
β β βββ automation/ # Test classes and automated scenario coverage
β β βββ data/ # Test data builders and custom data providers
β β βββ models/ # Domain and test data models
β β βββ pages/ # Page Object Model and reusable UI components
β β βββ utilities/ # Base classes, common flows, providers, logging, and utilities
β βββ resources/ # Test resources and execution/report configuration
βββ docs/ # Additional documentation
βββ CHANGELOG.md # Project changelog
βββ CONTRIBUTING.md # Contribution guide
βββ pom.xml # Maven build, dependencies, and plugin configuration
βββ README.md # Main documentation in English
βββ README.es.md # Main documentation in Spanishgit clone https://github.com/CarlosArman/PlaywrightJava.git
cd PlaywrightJavamvn clean installmvn exec:java -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install"mvn clean testThe main README should expose only the most important commands. For the full reference, see docs/COMMANDS.md and * *docs/COMMANDS.es.md**.
mvn clean install
mvn exec:java -Dexec.mainClass=com.microsoft.playwright.CLI -Dexec.args="install"
mvn clean test
mvn clean test -Dgroups="login"
allure serve allure-resultsThis framework includes execution evidence through:
- JUnit 5 execution results
- Allure results generation
- Allure HTML visualization
- Logging configuration through Log4j / SLF4J
- Structured page abstractions and shared flows for debugging clarity
To open the report after execution:
allure serve allure-resultsThe framework is organized around separation of concerns:
automation/β test classespages/β UI interaction abstractionutilities/β base classes, shared flows, logging, and providersmodels/β domain modelsdata/β reusable/custom data supportannotations/β grouping or categorization strategyresources/β configuration artifacts such aslog4j2.xmlandallure.properties
For full architecture details, see:
If you would like to compare this framework with a related automation project built in the TypeScript ecosystem, check out:
A related implementation built with:
- TypeScript
- Playwright
- Cucumber (BDD)
- Allure Report
- Page Object Model (POM)
This comparison demonstrates the ability to work across both Java + JUnit 5 and TypeScript + Cucumber stacks while preserving strong QA automation architecture principles.
- docs/COMMANDS.md β Commands reference (English)
- docs/COMMANDS.es.md β Commands reference (Spanish)
- docs/ENVIRONMENT.md β Environment guide (English)
- docs/ENVIRONMENT.es.md β Environment guide (Spanish)
- docs/ARCHITECTURE.md β Architecture guide (English)
- docs/ARCHITECTURE.es.md β Architecture guide (Spanish)
- CHANGELOG.md β Project changelog (English)
- CHANGELOG.es.md β Historial de cambios (EspaΓ±ol)
- CONTRIBUTING.md β Contribution guide (English)
- CONTRIBUTING.es.md β GuΓa de contribuciΓ³n (EspaΓ±ol)
- Expand scenario coverage
- Add stronger group strategy documentation
- Strengthen CI/CD integration
- Add richer evidence examples in the repository
- Improve metrics / observability conventions
Carlos R.
QA Test Automation Engineer
π GitHub: https://github.com/CarlosArman
This project is intentionally documented and structured to reflect not only functional automation capability, but also * engineering maturity in Java-based QA automation design*.