TestNG Reports:
TestNG Reports come into picture when we execute the test cases using TestNG Report generation is very important when you perform Manual Testing and Automation Testing. By going through the result, you can easily identify how many test cases are passed, how many are failed and how many test cases are skipped. By looking at the result report, you will know what the status of the project is. Selenium WebDriver is used only for automating web applications, but it won’t generate any reports. In this situation TestNG come into the picture once we execute test cases. TestNG will generate default HTML reports once we execute the test cases.
Using 3 Methods we can generate the TestNG Reports:
- emailable-report.html
- index.html
- Reporter Class
Method 1: emailable-report.html
Generally TestNG will generate default reports. You will get test-output folder when you execute testng.xml file and refresh the project. Right-click on emailable-report.html in test-output folder and select the option open with the web browser.
Let us consider the below scenario which has three methods passTest, failTest and skipTest with @Test annotation.
Step 1: Launch the Eclipse
Step 2: Create a New Package
Step 3: Create a New Java Class “EmailReport”
package testngpackage;
import org.testng.Assert;
import org.testng.SkipException;
import org.testng.annotations.Test;
public class EmailReport {
//To make it pass
@Test
public void passTest(){
Assert.assertTrue(true);
}
//To make it fail
@Test
public void failTest(){
Assert.assertTrue(false);
}
//To make it skip
@Test
public void skipTest(){
throw new SkipException("Skipping - This method is skipped testing ");
}
}
Step 4: Create a TestNG.xml file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="testngpackage" parallel="methods">
<test name="testngTest">
<classes>
<class name="testngpackage.EmailReport" />
</classes>
</test>
</suite>
Step 5: Execute the testng.xml file and refresh the project. You can see your project as the below image.
Expand ‘test-output’ folder and you should find a report ”emailable-report.html‘ which is the default report generated by TestNG.
Step 6: Right-click on emailable -report.html and select open with and click on web browser
Report will be like as shown below:
Method 2: index.html
Expand ‘test-output’ folder and you find an option ”index.html‘ which is the default report generated by TestNG.
Right-click on index.html and select open with and click on web browser
Report will be like as shown below:
Method 3: Reporter Class
Along with the above two methods to generate reports, you can use the object.properties file to store the system-generated logs as well as user-generated logs. Using Reporter Class is one of the simplest ways to store log information in testing. Reporter class is an inbuilt class in TestNG. It helps in storing the logs inside the reports which are user-generated or system-generated so that in the future when we look at the report, we can directly view the logs from there instead of rerunning the test cases.
Reporter is a class present in TestNG. It has four different methods to store log information:
- Reporter.log(String s);
- Reporter.log(String s, Boolean logToStandardOut);
- Reporter.log(String s, int level);
- Reporter.log(String s, int level, Boolean logToStandardOut);
Following syntax is used to use the reporter class
Reporter.log(string);
Simply we need to call the “log” function of the Reporter class of TestNG.
Example
Create a class as GoogleTest and write the following code inside the classes.
package com.sampletestpackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Reporter;
//import org.openqa.selenium.firefox.FirefoxDriver;
//import org.openqa.selenium.ie.InternetExplorerDriver;
import org.testng.annotations.Test;
public class GoogleTest {
WebDriver driver;
@Test(priority = 1)
public void driverSetup()
{
// System.setProperty("webdriver.gecko.driver", "src\\main\\java\\com\\browserdrivers\\geckodriver.exe");
System.setProperty("webdriver.chrome.driver", "src\\main\\java\\com\\browserdrivers\\chromedriver.exe");
//System.setProperty("webdriver.ie.driver", "src\\main\\java\\com\\browserdrivers\\IEDriverServer.exe");
driver=new ChromeDriver();
Reporter.log("The browser is opened");
}
@Test(priority = 2)
public void getURL()
{
driver.get("https://www.google.com");
// System.out.println("Launching Google site");
Reporter.log("The Google Site is Launched");
}
@Test(priority = 3)
public void getTitle()
{
String title = driver.getTitle();
System.out.println(title);
Reporter.log("Prints the web page title");
}
@Test(priority = 4)
public void closeBrowser()
{
driver.close();
//System.out.println("Test successfully passed");
Reporter.log("Close the driver");
}
}
- Now, Create testng.xml file by selecting the class and
- Select run as and
- Click on convert to Testng.
- Then run this testng.xml file by selecting run as and select Testng suite.
- Then refresh the project and open the test-output folder.
- In the test-output folder and Right-click on open the emailable-report.html. It will look like:
2. In test-output folder, Right-click on index.html and select open with and click on web browser
Click on Reporter output. It will open logging information that is written in the test methods.
Click on “Times”. It will show how much time it took to run the test method present in class.
Generating Allure Reports using TestNG in Selenium Automation
Following are the steps to generate Allure Reports using TestNG
Step1: Create a New Maven project and Update pom.xml with required dependencies from https://mvnrepository.com/
- TestNG
- Selenium Java
- Webdrivermanager
- Allure-TestNG
TestNG Dependencies
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.1.0</version>
<scope>test</scope>
</dependency>
Selenium Java
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0-alpha-6</version>
</dependency>
Webdrivermanager
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>4.0.0</version>
</dependency>
Allure-TestNG
<!-- https://mvnrepository.com/artifact/io.qameta.allure/allure-testng -->
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>2.13.3</version>
</dependency>
Step2: Download Maven and Allure Binaries then set the path
Go to https://maven.apache.org/download.cgi and download and extract the zip folder (apache-maven-3.6.3-bin.zip)
Click on Extracted folder and go to bin folder and copy the path and set the maven path in environment variables
Right-click on My PC->Properties -> Click Advance System Settings -> Click Environment Variables – > Click Path under System Variables and click Edit -> Click New and paste the path C:\apache-maven-3.6.3\bin
To check whether maven is configured or not, go to the command prompt and type the command mvn –version.
To download Allure Binaries go to https://docs.qameta.io/allure/#_installing_a_commandline and click Maven Central under Manual Installation and download the latest version 2.13.0 and click on the ZIP folder allure.commandline-2.13.0.zip
Click on Extracted folder and go to bin folder and copy the path and set the path in environment variables.
Right-click on My PC->Properties -> Click Advance System Settings -> Click Environment Variables – > Click Path under System Variables and click Edit -> Click New and paste the path C:\allure-2.13.0\bin
To check whether Allure is configured or not, go to the command prompt and type the command allure –version.
Step3: Create TestNG Test Cases and run through TestNG.XML
- Create a New Package (allureReports)
- Create a New Class (Tests)
Package allureReports;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.SkipException;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import io.github.bonigarcia.wdm.WebDriverManager;
Public class Tests {
WebDriver driver;
@BeforeClass
Public void setup()
{
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
driver.manage().timeouts.implicitywait(10,TimeUnit.SECONDS);
driver.get(“https://demo.nopcommerce.com/”);
driver.manage().window().maximize();
}
@Test(priority=1)
Public void logoPresence()
{
Boolean disstatus = driver.findElement(By.xpath(“//div[@class=’header-logo’]//a//img”)).isDisplayed();
Assert.assertEquals(disstatus, true);
}
@Test(priority=2)
Public void loginTest()
{
driver.findElement(By.linkText(“Log in”)).click();
driver.findElement(By.id(“Email”)).sendKeys(“[email protected]”);
driver.findElement(By.id(“Password”)).sendKeys(“xxxabc”);
driver.findElement(By.xpath(“//input[@class=’button-1 login-button’]”)).click();
Assert.assertEquals(driver.getTitle(), “nopCommerce demo store”);
}
@AfterClass
Public void teardown()
{
driver.quit();
}
}
Step4: Create a TestNG.xml file
Right-click on your Testcase(Tests)- >Go to TestNG-> Click Convert to TestNG and click Finish
<?xml version “1.0” encoding-“UTF-8”?>
<!DOCTYPE suite SYSTEM http://testng.org/testng-1.0.dtd>
<suite name = “Suite”>
<test thread-count=”2” name=”Test”/>
<classes>
<class name = “allureReports.Tests”/>
</classes>
</test> <!- - Test- - >
</suite> <!- - Suite - - >
Right-click on TestNG.xml file ->Run As->TestNg Suite
Refresh your project and you can see a new folder allure results. Expand the allure results and you can see json files. To see the allure reports which are generated for test case through TestNG.xml we need to run a command allure serve
Right-click on allure results folder – > Go to Properties – > Copy the Location
Open Command prompt and type the command
Allure serve C:\Users\admin\eclipse-workspace\AllureReporting\allure-results.
It will automatically generate the Allure Reports.
One Response