All IT Courses 50% Off
Selenium Tutorials

Maven & Jenkins Integration with Selenium

Complete Tutorial

In this article, you can learn to implement Maven & Jenkins Integration with Selenium, Maven installation, Jenkins installation steps.

What is Jenkins?

Jenkins is an Open source tool to automate software development processes and it is often referred as automation server. Jenkins is mostly widely used and very matured CI tool among other CI tool such as Bamboo, Teamcity, buddy etc. Jenkins is written in Java and it makes runnable on any Operating System that is supporting java. Jenkins is a Continuous Integration tool that allows continuous development, continuous deployment of newly created codes. The main usage of Jenkins is to monitor any kind of job which can be SVN checkout, or any application states. When a particular step occurs in jobs it will fire pre-configured actions.

Important Features of Jenkins

  • Easy Installation: Jenkins is a platform-agnostic which is easy to install either by using direct installation file i.e exe file or through war file to deploy using application server.
  • Easy Configuration: We can easily configure various tasks on Jenkins
  • Change Support: Jenkins generates the list of all changes done in the repositories like SVN.
  • Permanent links: For easy communication Jenkins will provide direct links to the latest build or failed build that can be used.
  • Email Integration: Jenkins can be configured email content of the status of the build.
  • TestNG Test: After each SVN build Jenkins can be configured to run the automation test build on TestNG.
  • Multiple VMs: On multiple machines Jenkins can be configured to distribute the build.
  • Project build: Jenkins will documents the details of jar, jar version and mapping of build and jar numbers.
  • Plugins: To use features and additional functionality Jenkins will configure 3rd party plugin.

Why Jenkins and Selenium?

  • Running Selenium tests in Jenkins allows us to run our tests every time when your software changes and software is deployed to a new environment when the tests pass.
  • Execution history and Test Reports can be saved.
  • A specific time can be scheduled to run your tests.
  • Jenkins supports Maven for deployment and testing a project in continuous integration.

What is Maven?

Maven is a management of software and comprehension tool which is based Project Object Model (POM) which can manage project build, reporting and documentation from a central part of information for Maven such as construction directory, dependency, source directory, Goals, plugins, etc.

Why Maven & Jenkins

Selenium WebDriver is most popular tool for browser automation. It feels underpowered when it is used for testing and building a test framework. Integrating Maven with Selenium provides following benefits.

Features of Maven:

  • Maven defines project structure, dependencies, test management, and build.
  • We can configure maven dependencies which are needed for building testing and running code using POM.xml
  • Dependency management
  • Maven will automatically download the necessary files from the repository while building the project.

Maven Installtion and use it with TestNG Selenium

In this article, we will use Eclipse IDE to set up Selenium WebDriver project, and additionally we add m2eclipse plugin to eclipse to help the build process and to create POM.xml file.

Steps to add m2eclipse plugin to Eclipse:

 Step 1: Launch Eclipse IDE and click on Help > Select Install New Software

Step 2: Enter the URL on the Install dialog. Select Work with and m2e plugin as shown in the below screenshot.


Step 3: Click on Next button.

Step 4: Accept the License agreement and click Finish button.

Step 5: Click On Restart Now to restart the eclipse.

Configure Eclipse with Maven

We now need to create Maven project once m2e plugin is installed.

Step 1: Launch Eclipse IDE and create a New Project by selecting File > New > Other from Eclipse menu.

Step 2: On the New dialog box, Expand Maven and select Maven Project and click Next.


Step 3: On the New Maven Project, check the Create a simple project and click on Next.


Step 4: Enter TestWebdriver in Group Id, Artifact Id and click on Finish.


Step 5: Eclipse will create TestWebdriver with following structure:


Step 6: Right-click on JRE System Library and select the option Properties from the menu.


On JRE System Library Properties dialog box, make sure Workspace default JRE is selected and click Apply and Close.


Step 7: Double-click on pom.xml from Project Explorer.


pom.xml file will Open in Editor section


Step 8: Add the Selenium, Maven, TestNG, Junit dependencies to pom.xml in the <project> node:


Step 9: Create a New TestNG Class. Enter Package name as “testing” and “NewTest” in the Name: textbox and click on the Finish button


Step 10: Eclipse will create the NewTest class as shown in the below screenshot:


Step 11: Add the below code to the NewTest class

package testing;

import org.testng.annotations.Test;
import org.testng.annotations.BeforeTest;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.Assert;
import org.testng.annotations.AfterTest;

public class NewTest {
    private WebDriver driver;
public void testEasy() {
String title = driver.getTitle();  

public void beforeTest() {
    driver = new FirefoxDriver();  
public void afterTest() {


Step 12: Right-click on the TestWebdriver and select TestNG and Convert to TestNG. Eclipse will create testng.xml which says that you need to run only one test with the name NewTest as shown in the below screenshot:


Update the project and make sure that file appears in the tree Package Explorer (right click on the project and click Refresh).


Step 13: Now run the above test through this testng.xml.

Go to the Run Configurations under Run and create a new launch TestNG, select the project and field Suite as testng.xml and click Run


This will launch the website and finished the build successfully.

Step 14: Additionally, to pom.xml we need to add

  1. maven-compiler-plugin
  2. maven-surefire-plugin
  3. testng.xml

The maven-surefire-plugin is used to configure and execute the tests. To configure the testing.xml for TestNG test and generate to test reports this plugin is used.

The maven-compiler-plugin is used in compiling the code and using the particular JDK version for compilation. Add all the dependencies in the below code, to pom.xml in the <plugin> node:


Step 15: To run the tests in the Maven lifecycle, Right-click on the TestWebdriver and select Run As Maven test. From the project Maven will execute the test.


This will launch the website and finished the build successfully.

Installation steps for Jenkins and configure it to Run Maven with TestNg 

Step 1: Go to the URL and download the package for your OS and click Download button.

Jenkins Download.PNG

Step 2: Unzip the Jenkins folder and run the exe file as shown in the below image:


Step 3: In Jenkins 2.233 Setup window click on Next button.


Step 4: Click on Install button.


Step 5: Once installation is complete, it automatically navigate to the Jenkins Dashboard (http://localhost:8080) in the browser window.


Step 6: Click on the New Item to create a job.


Step 7: Enter an Item Name and click OK button


Step 8: A new job with name “TestWebdriver” is created in Jenkins Dashboard.


Step 9: Go to Manage Jenkins and select Global Tool Configuration as shown in the below image.


Click on JDK installations and configure JDK as in the following image:

Enter JDK Name: java 1.8.0

JAVA_HOME C:\Program Files\Java\jdk1.8.0_121


Step 10: Go to the Build section of created job.

Add the pom.xml file’s path in the Root POM option.


Step 11: Click on the Apply button.


Step 12: On the TestWebdriver project page, click on the Build Now link.


Maven will build the project. It will have TestNG execute the test cases.

Step 13: Once the build process is completed, in Jenkins Dashboard click on the TestWebdriver project.


Step 14: The TestWebdriver project page displays the build history and links to the results as shown in the below image:


Step 15: To view the test results click on the “Latest Test Result” link.

Benefits of using Jenkins

  1. Finding Early issues – we can detect the Bugs detected in early phase of the software development
  2. Automatic integration – no need of separate effort required to integrate all changes made
  3. Installer – We can deploy system available at any point of development
  4. Records –build records are maintained
  5. Support and Plugins: One of the important reasons for Jenkin’s popularity is the accessibility of large community support. Also, more ready-made plugins are available which help us to expand its functionality.
Facebook Comments

Related Articles

Back to top button