Initial Maven Configuration-(v0.0.0)
A scalable and modular automation framework foundation using Java, Selenium WebDriver, and TestNG.
- Project Overview
- Technical Architecture
- Branching Strategy
- Versioning Scheme
- Initial Setup
- Dependencies
- Build Configuration
- Development Workflow
- Future Roadmap
- Contributing
- Author
- License
This project establishes the foundation for a robust Selenium WebDriver automation framework using Java 21, TestNG, and Maven.
- Set up initial Maven
pom.xml
with Java 21 compatibility. - Add Selenium and TestNG dependencies.
- Configure Maven Compiler and Clean plugins.
selenium-framework/
โโโ src/
โ โโโ main/java/ # Core framework components (future)
โ โโโ test/java/ # Test classes (future)
โ โโโ test/resources/ # Configuration files (future)
โโโ target/ # Build output directory
โโโ pom.xml # Maven configuration
โโโ README.md # Project documentation
graph TD
Java21 --> Maven
Maven -->|Build| Selenium
Maven -->|Test| TestNG
Selenium --> WebDriver
TestNG --> TestExecution
We follow Git Flow with the following branches:
gitGraph
commit id: "Initial commit"
branch dev
commit id: "v0.0.0: Maven Setup"
branch feature/maven-setup
commit id: "Maven Compiler, Selenium & TestNG"
checkout dev
merge feature/maven-setup
checkout main
merge dev
tag v0.0.0
main
: Stable production-ready codedev
: Integration branch for completed featuresfeature/*
: Feature-specific development branches
We follow Semantic Versioning (SemVer):
MAJOR
: Breaking changesMINOR
: Backward-compatible featuresPATCH
: Bug fixes
Current version: v0.0.0
- Java 21 JDK
- Maven 3.6+
- Git 2.30+
git clone https://github.com/your-repo/selenium-framework.git
cd selenium-framework
mvn clean install
Dependency | Version | Purpose |
---|---|---|
Selenium Java | 4.34.0 |
WebDriver implementation |
TestNG | 7.11.0 |
Testing framework |
Java | 21 |
Runtime environment |
Plugin | Version | Purpose |
---|---|---|
Maven Compiler Plugin | 3.14.0 |
Java 21 compilation |
Maven Clean Plugin | 3.5.0 |
Cleans target directory |
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<selenium.version>4.34.0</selenium.version>
<testng.version>7.11.0</testng.version>
</properties>
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>${selenium.version}</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
<configuration>
<release>21</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.5.0</version>
</plugin>
</plugins>
</build>
graph LR
A[feature/*] --> B[Pull Request to dev]
B --> C[Review and Merge into dev]
C --> D[Pull Request to main]
D --> E[Merge to main]
E --> F[Tag as v0.0.0]
Version | Feature(s) | Status | Target Date |
---|---|---|---|
v0.0.0 | Initial Maven configuration (pom.xml with dependencies and plugins) | ๐ง WIP | 03-Aug-2025 |
v0.1.0 | First test: TextBoxTest |
โณ Planned | 06-Aug-2025 |
v0.2.0 | Configuration manager (ConfigManager.java , config.properties ) + CI/CD |
โณ Planned | 09-Aug-2025 |
v0.3.0 | Log4j2 logging integration | โณ Planned | 12-Aug-2025 |
v0.4.0 | Robust exception handling | โณ Planned | 15-Aug-2025 |
v0.5.0 | WebDriver setup (DriverFactory , DriverManager , BaseTest ) |
โณ Planned | 18-Aug-2025 |
v0.6.0 | Page Object Model (BasePage , TextBoxPage ) |
โณ Planned | 21-Aug-2025 |
v0.7.0 | Wait utility enhancements | โณ Planned | 24-Aug-2025 |
v0.8.0 | Screenshot capture for failed tests | โณ Planned | 27-Aug-2025 |
v0.9.0 | TestNG listeners integration | โณ Planned | 30-Aug-2025 |
v1.0.0 | Allure Reports with logs & screenshots | โณ Planned | 03-Sep-2025 |
v1.1.0 | Retry mechanism (max 3 immediate retries) | โณ Planned | 06-Sep-2025 |
# Fork the repository
# Create feature branch
git checkout -b feature/your-feature
# Commit changes
git commit -am "Add your feature"
# Push to origin
git push origin feature/your-feature
# Create Pull Request on GitHub
ANUJ KUMAR ๐ QA Consultant & Test Automation Engineer
- ๐ง Email: anujpatiyal@live.in
- ๐ Website: (coming soon)
- ๐ LinkedIn Profile
Distributed under the MIT License.
โFirst, solve the problem. Then, write the code.โ โ John Johnson
This framework adheres to this principle with its configuration-first approach.