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.
Previous Post
No Comment
Add Comment
comment url