A modern, modular, and extensible test automation framework built with Java, Selenium, Cucumber, TestNG, Maven, and an advanced utilities ecosystem. This framework is designed for scalability, parallel execution, clean architecture, and seamless CI/CD integration.
- Modular Framework Architecture with clear separation of concerns.
- Custom Annotations for metadata-driven reporting.
- Driver Factory supporting multiple browsers & platforms.
- Cucumber BDD with extensible hooks and listeners.
- Reporting Integrations
- Allure Reports
- Extent Reports
- Test Data Management
- Excel
- JSON
- DTO-based structured typing
- Utility Layers
- Logging
- Faker Data Generation
- Properties Handling
- Date, File, JSON utilities
- Headless + Remote/WebDriver Grid Support
- Robust Exception Handling System
- Supports Scenario-Level Context Management
Below is the main structure of the project:
pom.xml
readMe.md
logs/
reports/
src
├── main
│ ├── java
│ │ ├── annotations/ # Custom annotations
│ │ ├── config/ # Config + Factory
│ │ ├── constants/ # Framework constants
│ │ ├── driver/ # WebDriver factory + manager
│ │ ├── dto/ # Test data transfer objects
│ │ ├── enums/ # Enum definitions
│ │ ├── exceptions/ # Custom exceptions
│ │ ├── helpers/ # Utility helpers
│ │ ├── keywords/ # WebUI keyword library
│ │ ├── pojo/ # Plain objects
│ │ ├── report/ # Report managers
│ │ └── utils/ # Advanced utilities
│ └── resources
│ ├── log4j2.properties
│ ├── META-INF/services
├── test
│ ├── java
│ │ ├── common/ # BaseTest, CommonPage
│ │ ├── dataprovider/ # Data provider + Repository
│ │ ├── hooks/ # Cucumber hooks/listeners
│ │ ├── listeners/ # TestNG listeners
│ │ ├── pages/ # Page Objects
│ │ ├── runners/ # Test Runners
│ │ ├── stepdefinitions/ # Step Definitions
│ │ └── resources
│ ├── cucumber.properties
│ ├── extent.properties
│ ├── pdf-config.yaml
│ └── config/
│ ├── scenario/
│ ├── suites/
│ └── testdata/
target/
| Layer | Technology |
|---|---|
| Language | Java 17+ |
| Build Tool | Maven |
| Testing | Cucumber + TestNG |
| Automation | Selenium/WebDriver |
| Reporting | Allure, Extent Reports |
| Logging | Log4j2 |
| Data | Excel, JSON, DTO |
mvn clean test
mvn clean test -Dsuite=Smoke
mvn clean test -Dbrowser=chrome
Use predefined runners in /runners package.
Generate and open:
mvn allure:serve
Available in:
/reports/extent-report/
Modify environment configuration here:
src/test/resources/config/
Or override using:
-Denv=qa
- Excel data via
ExcelHelpers - JSON data via
JsonUtils - DTO mapping for structured formats
- BrowserFactory
- DriverManager
- TargetFactory
- ScenarioManager
Custom exceptions for clarity and debugging:
- InvalidPath
- FrameworkException
- TargetNotValid
- Logging
- Encryption/Decoding
- Local Storage Access
- Zip Utils
- Date Utils
- Faker Data
Framework built with inspiration from modern test automation best practices and clean architecture principles.