Selenium TestNG Maven Framework Guide
Step 1: Install Java and Maven
Ensure Java and Maven are installed by running:
java -version
mvn -version
Download Java from here and Maven from here if not installed.
Step 2: Create a New Maven Project
mvn archetype:generate -DgroupId=com.example -DartifactId=selenium-framework -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Step 3: Add Dependencies in pom.xml
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.16.1</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.10.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.aventstack</groupId>
<artifactId>extentreports</artifactId>
<version>5.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.22.0</version>
</dependency>
</dependencies>
Step 4: Create Project Structure
/selenium-framework
โโโ /src/main/java
โ โโโ com/example/pages
โ โโโ HomePage.java
โโโ /src/test/java
โ โโโ com/example/tests
โ โโโ SampleTest.java
โโโ log4j2.xml
โโโ testng.xml
โโโ pom.xml
โโโ README.md
Step 5: Create a Sample Test File
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class SampleTest {
@Test
public void verifyHomePageTitle() {
WebDriver driver = new ChromeDriver();
driver.get("https://example.com");
Assert.assertEquals(driver.getTitle(), "Example Domain");
driver.quit();
}
}
Step 6: Create log4j2.xml
for Logging
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT"/>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
Step 7: Create testng.xml
File
<?xml version="1.0" encoding="UTF-8"?>
<suite name="Selenium Test Suite" parallel="false">
<test name="Sample Test">
<classes>
<class name="com.example.tests.SampleTest"/>
</classes>
</test>
</suite>
Step 8: Add Build Plugin in pom.xml
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
</plugin>
</plugins>
</build>
Step 9: Run Tests
mvn clean test
Step 10: Jenkins Integration
Install Jenkins and configure a Maven build job. Add a post-build action to archive test results and generate reports.
Step 11: Additional Tips
- โ Use `.env` for environment variables.
- โ Implement `Page Object Model (POM)` for scalability.
- โ Use Jenkins pipelines for CI/CD integration.