Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automation Exercises - Software Testing Project

📌 Project Overview

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.


🎯 Project Goals

  • 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.

🛠️ Framework Description

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 SeleniumHelper class 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.

✅ Implemented Test Cases

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.


📊 Allure Report

The following screenshots show the generated Allure report after running the automated test suite.

Report Overview

Allure Report Overview

Test Suites View

Allure Test Suites


📁 Project Structure

```
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 SeleniumHelper for reusable actions.
  • tests/: Contains all test classes organized by functionality.
  • testData/: JSON files used for data-driven testing.

🔽 Setup Instructions

  1. Clone the repository

    git clone https://github.com/NourhanFarag/AutomationExcersices_SoftwareTestingProject.git
    
  2. Open the project in an IDE (IntelliJ IDEA, Eclipse) with Maven support.

  3. Install dependencies using Maven:

    mvn clean install
    
  4. Run tests via TestNG suite:

    mvn test
    
  5. 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

About

A Selenium automation testing project for Automation website: https://automationexercise.com/, built with Java, TestNG, and Maven, following the Page Object Model (POM) design pattern, powered by my selenium framework, and integrated with Allure Reports for advanced test reporting.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages