Test Automation and Reporting using TestNG
Hi everyone! in this article, we are going to discuss on Test Automation using TestNG. Additionally, we will be discussing on how to set up Test NG and Test Reporting using TestNG
Well… Here come the questions. What is TestNG?
Let’s find out.
What is TestNG

TestNG is a testing framework in which NG stands for “Next Generation”. It has the ability to generate testing reports in a readable format and can easily come to know how many test cases are passed, failed, and skipped

Using TestNG we can set priorities for test case executions to determine which test case should be executed first.
TestNG annotations are very easy to understand
Ex: @BeforeTest, @AfterTest
In TestNG, we do not use a static main method which will simplify the code.
Setup TestNG in Eclipse IDE
There are three ways to download and install TestNG in Eclipse IDE.
- Download and install directly from Eclipse marketplace
- Download and install using the “Install new software” feature
- Download and install using offline jar files (Only If you are using a portable eclipse version
Here I am going to use the 2nd method which is Download and install TestNG using the “Install new software” feature in Eclipse
- Firstly, you need to open the Eclipse IDE and navigate to Help section from the top menu and select “Install new software”

2. It will open the below screen and, then search for TestNG in “Work with” section

3. You will get a few suggestions and select “TestNG — http://dl.bintray.com/testng-team/testng-eclipse-release/”
4. Following screen will appear and select “TestNG” checkbox and then click on “Next” without changing any other checkbox selections

5. The below screen will provide an overview of the items to be installed. Simply click on Next

6. You need to accept “the terms of the license agreement” by selecting the radio button option and then click on “Finish” to finish the installation process.
Setting up a Sample Java project with TestNG
- Navigate to Eclipse IDE
- Create a new project using File → New → Project → Java Project → Next


3. Provide a project name and click on ‘Finish’

4. Now we need to add below resource files to our project
a) Web Driver (for this example I am using the Chrome Driver)
b) Selenium Jar Files
c) Selenium standalone server
Before adding those resource files we need to create a folder structure inside the project as below,

In order to add folders, right-click on the Project click on New → Folder →

Provide a name for the folder and click on ‘Finish’

After you created the folder structure it should look like below

5. We need to add resources to the above-created folders
Adding resources to the resources folders
a) Download the ChromeDriver (make sure that you are downloading the ChromeDriver version which is support for your installed chrome browser)
b) Download the Selenium Standalone server from https://www.selenium.dev/downloads/ (make sure to download the latest stable version)

c) Download Selenium jar files from https://www.selenium.dev/downloads/
(make sure to download the stable version)

d)Copy the downloaded files and paste those to the relevant folder in the pre-created folder structure.
e) Then we need to add the selenium Jar files and the selenium standalone server to the build path. To do that,
Select all the selenium jar files and the selenium standalone server,
Right Click → Build Path → Add to Build Path

After adding those to the build path the folder structure should look like below

6. Creating a TestNG class
a) Select the relevant package, Right Click → New → Other

Then select TestNG Class

b) Provide a Class name and click “Finish”

Create a Property file to store properties like base URL, driver path, user names, and passwords. The main advantage of having a property file is, we don’t want to hard-coded the above-mentioned fields.
To set up the property file,
1st create a file under the “Resources” folder, name it as “config.properties”
Then create a Java class under the “src” package to read the properties from the “config.properties” file.

Well... That's complete the TestNG setup, Let's create a sample TestNG Test Class.
1st we need to define the Web Driver
public WebDriver driver;
After that, I am going to define a method to access the Base URL. I used @beforeTest annotation before the method, and from that, I am expecting this method to run first before run any priority test cases
Then we are ready to define the test cases based on the priority.
I am going to write a sample test case to verify the page title of the base URL.
We can change the priority of the test case by changing the number. Furthermore, If we need to skip the test case, we can simply define it in the test case as “enabled = false”. Then that test case will not run.
After the execution of all the test cases, we can define a method to close the browser. To define that we can use @AfterTest annotation before the method
Here is the full code segment for the above example
To run the Test we can simply right click on the class → Run As → TestNG Test

How to run multiple Test Classes using TestNG
Suppose our solution consists of several packages and several Test Classes. When a situation like this, how can we run all tests together?

The solution is to create a TestNG.xml file inside the root of the project.
Creating TestNG.xml file
Right-click on the project New → File
Provide the file name as TestNG.xml and Click on ‘finish’
We can define the format as below
Then we can simply run this TestNG.xml file and it will execute the tests according to the defined order in the XML file.
TestNG Reporting
TestNG is capable of generating reports in HTML format.
After running a TestNG project, a new folder called “test-output” is automatically created in the project structure.

If this “test-output” folder is not created automatically,
Rightclick on the Project → Refresh
Under the autogenerated “test-output” folder there is an “index.html” file
Rightclick on “index.html” file → Open with → Web Browser

Then it will open in Eclipse inbuilt web browser and it contains the Test Result summary

Moreover, you can generate a Test Report which can be more readable and emailable, using “emailable-report.html” file

As we did in the above example, all you need to do is, Rightclick on the “emailable-report.html” file → Open with → Web Browser.

That concludes our article as well. I hope you got a picture of what we are trying to achieve. Your comments and suggestions are welcome. You may also share your experience with TestNG.