Selenium Component and Folder Structure - Notes By ShariqSP
Selenium Component and Folder Structure
Framework Overview
A framework is a standardized platform that provides pre-built tools, components, and libraries for developing and testing applications. It simplifies development, improves consistency, reusability, and enhances productivity.
Why We Need a Framework
Frameworks are essential for several reasons:
- Code Reusability: They help reduce redundant code by providing reusable components.
- Consistency: Frameworks enforce best practices, improving readability and maintainability.
- Modularization: The project is broken into manageable units that are easy to test and reuse.
- Efficiency: Frameworks automate repetitive tasks, enhancing productivity.
- Scalability: They provide a structured approach that helps scale the application as the project grows.
- Debugging and Maintenance: The structured nature of a framework makes it easier to locate and fix bugs.
Framework Components
1. Generic Utility
This package contains helper classes and utility functions that are reusable across the project.
- Example: Loggers, Date utilities, File handling utilities, etc.
2. POM (Page Object Model) / Object Repository
The POM design pattern maintains an object repository where the web elements of the web pages are stored. Each page will have a corresponding class.
- Example: Web elements locators, methods to interact with UI components, etc.
3. Test Data
This folder contains data used for running the test cases, like Excel, CSV, or JSON files.
- Example: Input values, expected results, environment configurations.
4. Resources
This folder stores external files, configurations, and drivers that are required during test execution.
- Example: Configuration files, browser drivers, libraries.
5. Test Scripts
This package contains the actual test cases that execute the application functionality.
- Example: Test classes, setup, and teardown methods, annotations.
6. HTML Reports
This folder stores the reports generated after test execution in HTML format.
- Example: Summary reports, detailed logs, graphs, and metrics.
7. Screenshots
This folder stores screenshots captured during test execution, especially when a test fails.
- Example: Screenshots of failures, test steps.
8. Suite Files
Suite files define the order in which test cases are executed and include other settings like parallel execution.
- Example: TestNG testng.xml or JUnit suite files.
9. pom.xml
This file is the Project Object Model in Maven, managing project dependencies and build configurations.
- Example: Dependencies for Selenium, TestNG, build plugins, project metadata.