This project is a Selenium WebDriver-based automation testing suite for the Automation Exercises web application.
The project automates important end-to-end user workflows such as registration, login, product search, cart operations, checkout, subscription, contact form submission, and UI verification. It follows the Page Object Model design pattern to keep the framework clean, reusable, and maintainable.
- Automate functional test cases for the Automation Exercise website.
- Validate main user flows from registration to checkout.
- Apply a reusable automation framework structure.
- Use TestNG to organize and execute test suites.
- Generate Allure reports with clear test execution results.
- Improve test readability, maintainability, and debugging.
The framework is custom-built using Java, Selenium WebDriver, TestNG, and Allure reporting. Key features include:
- Page Object Model (POM): Each page has its own class with locators and methods, making the tests maintainable and readable.
- Reusable Helper Utilities: A
SeleniumHelperclass handles common actions like click, sendKeys, scroll, wait, and element visibility checks. - Data-Driven Testing: Test data is stored in JSON files and loaded dynamically for login, registration, contact forms, and other scenarios.
- Allure Reporting: Integrated Allure reports provide step-by-step execution details, including success/failure messages and screenshots.
- Soft and Hard Assertions: Soft asserts are used for multiple verifications in a single test, while critical verifications use hard asserts.
- Structured Test Cases: TestNG is used to organize and run the test cases efficiently.
The project implements 26 automated test cases covering major functionalities of the website. Examples include:
- User Authentication
- TC1: Register User
- TC2: Login User with correct email and password
- TC3: Login User with incorrect email and password
- TC4: Logout User
- TC5: Register User with existing email
- Contact & Feedback
- TC6: Contact Us Form
- Navigation & Products
- TC7: Verify Test Cases Page
- TC8: Verify All Products and product detail page
- TC9: Search Product
- Subscription
- TC10: Verify Subscription in Home Page
- TC11: Verify Subscription in Cart Page
- Cart Operations
- TC12: Add Products in Cart
- TC13: Verify Product quantity in Cart
- Checkout & Order Placement
- TC14: Place Order: Register while Checkout
- TC15: Place Order: Register before Checkout
- TC16: Place Order: Login before Checkout
- Cart Management
- TC17: Remove Products from Cart
- Category & Brand Verification
- TC18: View Category Products
- TC19: View & Cart Brand Products
- Cart Persistence
- TC20: Search Products and Verify Cart After Login
- Product Interaction
- TC21: Add review on product
- TC22: Add to cart from Recommended items
- Checkout Verification
- TC23: Verify address details in checkout page
- TC24: Download Invoice after purchase order
- UI/UX
- TC25: Verify Scroll Up using 'Arrow' button and Scroll Down functionality
- TC26: Verify Scroll Up without 'Arrow' button and Scroll Down functionality
Each test case is implemented as a separate TestNG class using page methods and helper utilities for modularity and maintainability. All tests are data-driven wherever applicable using JSON files.
The following screenshots show the generated Allure report after running the automated test suite.
```
AutomationExercises_SoftwareTestingProject/
│
├─ src/
│ ├─ main/
│ │ ├─ java/
│ │ │ ├─ Pages/ # Page Object classes
│ │ │ └─ SeleniumFramework/ # Helper utilities
│ │
│ └─ test/
│ ├── java/
│ │ ├── base/ # Base test setup
│ │ └── tests/ # TestNG test classes
│ │
│ └── resources/
│ └── data/ # JSON test data and upload files
|
├─ testData/ # JSON test data files
├─ pom.xml # Maven dependencies
├─ testng.xml # TestNG suite configuration
└─ README.md # Project documentation
```
- Pages/: Contains all page objects with locators and methods.
- SeleniumFramework/: Contains helper classes like
SeleniumHelperfor reusable actions. - tests/: Contains all test classes organized by functionality.
- testData/: JSON files used for data-driven testing.
-
Clone the repository
git clone https://github.com/NourhanFarag/AutomationExcersices_SoftwareTestingProject.git
-
Open the project in an IDE (IntelliJ IDEA, Eclipse) with Maven support.
-
Install dependencies using Maven:
mvn clean install
-
Run tests via TestNG suite:
mvn test -
Generate Allure reports (optional):
mvn allure:serve
This will launch a browser showing the detailed test execution report.
Author: Nourhan Farag
Project Type: Selenium Automation FrameWork with Java, TestNG, and Allure Reports

