The framework is a Selenium-based test automation framework with a layered architecture centered around driver management, configuration, and dual reporting systems (ExtentReports and Allure)
To get started with this framework, follow these steps:
https://github.com/fsejasm/AutomationFrameworkSelenium
This Selenium Automation Framework follows a structured approach for better maintainability and scalability. Below is an overview of the code structure:
The framework uses a prioritized configuration chain managed by the Owner library through the Configuration interface Configuration.
- System Properties (highest priority) - Command-line arguments
- Environment Variables - OS-level variables
- config.properties - Main framework settings
- data.properties - Test data settings
The driver management system ensures thread-safe parallel execution:
- DriverManager: Central authority using ThreadLocal to isolate browser instances per execution thread
- BrowserFactory: Enum-based factory creating specific browser instances (Chrome, Edge, Firefox, Safari) with associated capabilities
- TargetFactory: Decides between LOCAL or REMOTE (Selenium Grid) execution based on configuration
The reporting system is dual-layered with ExtentReports and Allure integration: ExtentReports Integration
- ExtentReportManager: Global lifecycle engine managing report initialization, test logging nodes, and HTML compilation ExtentReportManager
- ExtentTestManager: Thread-safe container for managing test nodes (not shown in snippets but referenced)
- ReportUtils: Handles report path creation and automatic report opening ReportUtils
To run all the tests, use the following command:
mvn clean test