https://github.com/veena444/e2euiautomationproject-opencart
End to end UI automation framework using Selenium 4.x and Java.
https://github.com/veena444/e2euiautomationproject-opencart
allure-reports blueocean cicdpipeline docker-container extentreports github java jenkins log4j2 ngrok-server selenium-grid selenium-webdriver selenoid testng-dataprovider testng-framework testng-listener testng-reports webhook
Last synced: about 2 months ago
JSON representation
End to end UI automation framework using Selenium 4.x and Java.
- Host: GitHub
- URL: https://github.com/veena444/e2euiautomationproject-opencart
- Owner: veena444
- Created: 2024-12-10T10:09:36.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2025-03-28T12:09:35.000Z (2 months ago)
- Last Synced: 2025-03-28T13:24:21.929Z (2 months ago)
- Topics: allure-reports, blueocean, cicdpipeline, docker-container, extentreports, github, java, jenkins, log4j2, ngrok-server, selenium-grid, selenium-webdriver, selenoid, testng-dataprovider, testng-framework, testng-listener, testng-reports, webhook
- Language: Java
- Homepage: https://naveenautomationlabs.com/opencart/index.php?route=account/login
- Size: 57.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## **Project Overview:**
This project demonstrates and end-to-end UI test automation framework for testing the Open Cart e-commerce application. The framework is implemented using Selenium 4.x, Java, & TestNG. It is designed for
robust and scalable automated testing of web applications.## **Features:**
***Page Object Model (POM):** Clean separation of test scripts and page objects for better maintainability.
***Custom WebDriver Event Listeners:** Enhanced logging and reporting of browser interactions.
***Dynamic Wait Strategies:** Efficient use of explicit and fluent waits to handle dynamic elements.
***Data-Driven Testing:** Utilizes CSV data providers for test parameterization.
***Parallel Execution:** Leverages TestNG for executing tests in parallel to reduce execution time.
***Cross-Browser Testing:** Supports testing on Chrome, Firefox, and Edge browsers.
***Detailed Reporting:** Generates test execution reports using ExtentReports and Allure Reports.
***Custom Exception Handling:** Retry mechanisms for flaky tests and enhanced failure management.
***Screenshots on Failures:** Captures screenshots automatically for failed tests.
***Reusable Components:** Includes libraries for common UI elements and actions.
***Integration with CI/CD:** Configured for Jenkins to enable continuous testing.
***Comprehensive Logging:** Implements Log4j2 for customizable & detailed logging at various levels.
## **Tech Stack:**
1.IDE - Eclipse
2.Language - Java
3.Maven - Build Tool
4.TestNG - Unit testing framework
5.Design Pattern - Page Object Model (POM)
6.Log4j - Logging
7.Extent & Allure Reports - Reporting
8.CI/CD Pipeline using Jenkins
9.Selenium Grid setup
10.Selenoid Docker grid Execution
11.AWS Cloud to run the test cases on cloud
## **Infrastructure Setup:**
**Selenium Grid and Selenoid Integration:**
***Distributed Testing:** Implements Selenium Grid & Selenoid for executing test across multiple nodes.
***Dockerized Environment:** Uses Docker containers for browser nodes.
***Auto-Scaling:** Automatically scales based on test load.
## **Prerequisites:**
1.**Java JDK 11 or higher**
2.**Maven**
3.**Selenium WebDriver**
4.**TestNG**
5.**Docker(for Selenium Grid and Selenoid Setup)**
6.**Browsers: Chrome, Firefox, Edge**
## **Installation and Setup:**
1.**Clone the repository:**
git clone https://github.com/veena444/E2EUIAutomationProject-OpenCart.git
2.**Navigate to the project directory:**
cd E2EUIAutomationProject-OpenCart
3.**Install dependencies using Maven:**
mvn clean install
## **Running Tests:**
**Local Execution:**
1.Update the testng.xml file to specify test configurations.
2.Run tests using maven:
mvn test
**Parallel Execution:**
Enable parallel execution in the testng.xml file under tag:
**CI/CD Integration:**
1.Configure Jenkins with this project.
2.Add a Jenkins pipeline for executing tests.
3.Ensure Docker & Selenoid are installed on the CI server for distributed testing.
## **Reporting:**
**ExtentReports:** HTML-based reports for detailed test execution results.
**Allure Reports:** Graphical and interactive reports for better analysis.
**Screenshots:** Automatically attached to reports for failed test cases.
**Log4j2 Logs:** Captures detailed logs for each test execution.