https://github.com/kvishalrj/qkart_ui_testing
A ecommerce website
https://github.com/kvishalrj/qkart_ui_testing
developer-tools html java locators selenium testng xpath
Last synced: 2 months ago
JSON representation
A ecommerce website
- Host: GitHub
- URL: https://github.com/kvishalrj/qkart_ui_testing
- Owner: kvishalrj
- Created: 2024-11-22T14:03:53.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-22T14:50:37.000Z (over 1 year ago)
- Last Synced: 2025-02-08T16:11:55.993Z (over 1 year ago)
- Topics: developer-tools, html, java, locators, selenium, testng, xpath
- Language: Java
- Homepage: https://www.crio.do/learn/portfolio/vishal-kumar-criodo/ME_QKART_QA_V2/
- Size: 133 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# QKart UI Testing
## Overview
**QKart** is an e-commerce platform, and the purpose of this project is to design and automate test cases for the application using the **TestNG** framework.
### Project Highlights:
- Debugged and fixed **failing test cases** and improved existing test coverage for critical functionalities like **Register**, **Login**, **Product Search**, and **Cart Management**.
- Automated manual test cases using **Selenium** with proper synchronization via **implicit and explicit waits**.
- Enhanced locators with **dynamic XPath**, improving the reliability of the test scripts.
- Migrated tests to the **TestNG** framework, enabling features like **test grouping**, **prioritization**, and **parameterization**.
- Implemented **data-driven testing** using **Apache POI**, ensuring robustness with varied test inputs.
- Modularized and maintained the test code for better readability and reduced duplication.
- Captured screenshots before and after each test and upon encountering errors to aid in debugging.
## Tools and Technologies Used:
- **Java**
- **Selenium WebDriver**
- **TestNG**
- **Apache POI**
- **XPath**
- **Developer Tools**
- **HTML**
## Project Structure:
The project is organized into the following modules:
1. **Page Objects**:
- Encapsulates web elements and their respective methods for different QKart pages like Registration, Login, Products, and Cart.
2. **Test Cases**:
- Designed following the **Page Object Model (POM)** with reusable methods for operations like searching, adding to the cart, and session management.
3. **TestNG Configurations**:
- TestNG XML files manage test suites, parameterization, and test grouping (e.g., **Sanity** and **Regression**).
4. **Synchronization Enhancements**:
- Improved test resilience by placing appropriate **implicit and explicit waits** for better synchronization between test scripts and the UI.
5. **Reports**:
- **TestNG Listeners** generate detailed logs and screenshots for passed and failed tests.
## Features Implemented:
- **Data-Driven Testing**:
- Automated tests dynamically utilize data from Excel files via **Apache POI**.
- **Modularization**:
- Modular test code enhances reusability and reduces redundancy.
- **Enhanced Locators**:
- Dynamic XPath for robust and reliable element selection.
- **Screenshots**:
- Screenshots are captured before and after test execution and upon failures.
- **Cross-Browser Validations**:
- Automation validations span multiple tabs and browser windows.
## How to Run:
1. Clone the repository:
```bash
git clone https://github.com/kvishalrj/QKart_UI_Testing.git
```
2. Import the project into your preferred IDE (IntelliJ IDEA, Eclipse, etc.).
3. Ensure **Java**, **Selenium**, and required dependencies are installed.
4. Execute the test suite via `TestNG.xml` or using Maven/Gradle.
### Running Tests:
#### Using Maven:
```bash
mvn test
```
#### Using Gradle:
```bash
gradle test
```
## Reporting:
After the test run, detailed reports are generated:
- **Screenshots**: Located in the `screenshots/` directory.
- **Test Reports**: Found in the `reports/` directory, providing detailed insights into the test execution.
## Future Scope:
- Expand test coverage for advanced features like payment gateways and user reviews.
- Integrate with CI/CD pipelines for continuous testing.
- Enhance reporting with tools like **Extent Reports**.