π Overview
A robust, industry-ready automation testing framework built on Selenium + Java + TestNG, designed to validate critical flows of the JPetStore demo website .This framework is data-driven, supports cross-browser parallel execution, integrates dynamic Allure reporting with videos, screenshots, logs, and provides a scalable Page Object Factory design for maintainable test automation.
Key highlights:
30+ smoke/regression test cases
Data-driven approach using CSV files
Dynamic Allure reporting (graphs, logs, browser console, env details)
Automatic video clips & screenshots on failures
Cross-browser parallel execution (Chrome, Firefox, Edge)
Scalable Page Object Factory pattern
CI/CD integration with Jenkins
β¨ Features
β 30+ test cases across login, signup, checkout, owner management, etc.
β CSV-based test data (src/test/resources/data/*.csv)
β Allure reporting with:
Real-time execution graphs
Console logs
Environment info
Screenshots & videos on failures
β Cross-browser execution (Chrome, Firefox)
β Page Object Factory β clean, reusable, maintainable
β Jenkins CI/CD pipeline ready
π Project Structure Pets_store_selenium_java/ βββ .allure/ # Allure system files βββ allure-report/ # Generated Allure HTML report βββ allure-results/ # Raw Allure result files βββ screenshots/ # Captured screenshots βββ videos/ # Test failure video recordings βββ src/ β βββ main/java/ β β βββ factory/ # DriverFactory, Browser options β β βββ utils/ # CSV utilities, helpers β β β βββ test/java/ β βββ base/ # BaseTest setup β βββ pages/ # Page Object Factory classes β βββ reports/ # TestNG listeners, Allure integrations β βββ tests/ # Test classes (30+ cases) β βββ src/test/resources/ β βββ data/ # CSV test data β βββ animal.csv β βββ find_owner.csv β βββ login.csv β βββ owner.csv β βββ payment.csv β βββ signin.csv β βββ signup.csv β βββ testng.xml # TestNG suite configuration βββ pom.xml # Maven build + dependencies βββ README.md # Project documentation βββ target/ # Build output
βοΈ Tech Stack
Language: Java 17
Framework: TestNG 7.x
Automation: Selenium 4.x
Build Tool: Maven 3.8+
Reports: Allure 2.x
Data: OpenCSV (CSV-driven tests)
CI/CD: Jenkins (with Allure plugin)
π Getting Started πΉ Prerequisites
Java 17+
Maven 3.8+
Allure Commandline
Chrome + Firefox browsers
Verify setup:
java -version mvn -version allure --version
πΉ Clone Repository git clone https://github.com/raxit00701/JPetStore-Selenium-TestNG-Framework.git cd JPetStore-Selenium-TestNG-Framework
πΉ Run Tests
Default (Chrome):
mvn clean test
Firefox:
mvn clean test -Dbrowser=firefox
Parallel via TestNG:
mvn clean test -DsuiteXmlFile=testng.xml
πΉ Allure Reports
Generate & open report locally:
allure serve target/allure-results
Generate HTML report:
allure generate target/allure-results -o target/allure-report --clean
π Example Data-Driven Test
CSV file (login.csv):
username,password j2ee,j2ee testuser1,pass123 testuser2,pass456
Java DataProvider:
@DataProvider(name = "loginData") public Object[][] getLoginData() { return CsvUtils.readCsv("src/test/resources/data/login.csv"); }
π Jenkins CI/CD
Configured with Allure Jenkins Plugin
Build step:
mvn clean test
Post-build:
Publish Allure report β target/allure-results
Badge in README auto-updates:
π§βπ» Author
π€ Raxit Sharma
πΌ QA Automation Engineer Enthusiast
π GitHub Profile