How to create TestNG Listeners

Last updated on Nov 28 2021
Vidhya Prakesh

Table of Contents

How to create TestNG Listeners

TestNG provides the @Listeners annotation which listens to each event that happens during a selenium code. Listeners are activated either before the test or after the test suit . it’s an interface that modifies the TestNG behavior. for instance , once you are running a test suit either through selenium or appium and suddenly a test suit fails. we’d like a screenshot of the test suit that has been failed, to realize such scenario, TestNG provides a mechanism, i.e., Listeners. When the test suit failure occurs, then it’s redirected to the new block written for the screenshot.

Listeners are implemented by the ITestListener interface. An ITestListener interface has the subsequent methods:

1 65

onTestStart(): An onTestStart() is invoked only any test method gets started.

onTestSuccess(): An onTestSuccess() method is executed on the success of a test method.

onTestFailure(): An onTestFailure() method is invoked when test method fails.

onTestSkipped(): An onTestSkipped() run only any test method has been skipped.

onTestFailedButWithinSuccessPercentage(): This method is invoked whenever when the test method fails but within success percentage.

int a=5;
int b=7;
sum=a+b;
System.out.println(sum);
}
@Test
public void testtofail()
{
System.out.println("Test case has been failed");
Assert.assertTrue(false);
}
}

In the above code, we create two test cases, i.e., sum() and testtofail().

Listener.java

package com.tecklearn;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
public class Listener implements ITestListener
{
@Override
public void onTestStart(ITestResult result) {
// TODO Auto-generated method stub
}

@Override
public void onTestSuccess(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Success of test cases and its details are : "+result.getName());
}

@Override
public void onTestFailure(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Failure of test cases and its details are : "+result.getName());
}

@Override
public void onTestSkipped(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Skip of test cases and its details are : "+result.getName());
}

@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Failure of test cases and its details are : "+result.getName());
}

@Override
public void "1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite -->

Step 4: Run the testng.xml file. Right click on the testng.xml file and move the cursor right down to Run As then click on the 1 TestNG Suite.

2 64

The above output shows that sum() test suit has been passed and testtofail() testcase has been failed.

Second case: Now we create the listeners by using testng.xml file.

Step 1: Open the Eclipse.

Step 2: we’ll create two java projects. One java project is containing the test cases and another project is containing listeners.

Testcases.java

package com.tecklearn;
import org.testng.Assert;
import org.testng.annotations.Test;
public class Testcases
{
@Test
public void testtopass()
{
Assert.assertTrue(true);
}

@Test
public void testtofail()
{
Assert.assertFalse(false);
}
}

Listener.java

package com.tecklearn;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;

public class Listener implements ITestListener
{
@Override
public void onTestStart(ITestResult result) {
// TODO Auto-generated method stub
}

@Override
public void onTestSuccess(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Success of test cases and its details are : "+result.getName());
}

@Override
public void onTestFailure(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Failure of test cases and its details are : "+result.getName());
}

@Override
public void onTestSkipped(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Skip of test cases and its details are : "+result.getName());
}

@Override
public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
// TODO Auto-generated method stub
System.out.println("Failure of test cases and its details are : "+result.getName());
}

@Override
public void "1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<!-- Suite -->

Step 4: Run the testng.xml file.

Output

2 64

Note: When listeners are added to multiple classes then it might be a mistake prone. If listeners are implemented through the testng.xml file, then they’re applied to all or any the classes.

So, this brings us to the end of blog. This Tecklearn ‘How to create TestNG Listeners’ blog helps you with commonly asked questions if you are looking out for a job in Selenium and Automation Testing. If you wish to learn Selenium and build a career in Automation Testing domain, then check out our interactive, Selenium Certification Training, that comes with 24*7 support to guide you throughout your learning period. Please find the link for course details:

https://www.tecklearn.com/course/selenium-training-certification/

Selenium Certification Training

About the Course

Tecklearn’s Selenium Certification Training enables you to master the complete Selenium suite. The Selenium Training is designed to train developers and manual testers to learn how to automate web applications with a robust framework, and integrate it within the DevOps processes of an organization. This Selenium Certification Training will also help you master important concepts such as TestNG, Selenium IDE, Selenium Grid, Selenium WebDriver, etc. Get hands-on experience on widely used automation frameworks such as Data-Driven Framework, Keyword-Driven Framework, Hybrid Framework, and Behavior Driven Development (BDD) Framework. Throughout this online Instructor-led Selenium Certification Training, you will be working on real-life industry use cases.

Why Should you take Selenium Certification Training?

  • The average salary of a Selenium Test Automation Engineer is $94k per year – Indeed.com.
  • Automation Testing Market is expected to grow at a Compound Annual Growth Rate (CAGR) of 18.0% in the next three years.
  • Global software testing market to reach $50 billion by 2020 – NASSCOM. Selenium tool supports more browsers and languages than any other testing tool.

What you will Learn in this Course?

Getting started with Selenium

  • Introduction to Selenium testing
  • Significance of automation testing
  • Comparison of Manual and Automation Testing
  • Installation of Java JDK, JRE and Eclipse

Setting the environment in Eclipse for Selenium

  • Java Introduction
  • Creating a Java function and executing
  • Concepts of Java
  • Properties File
  • Reading Data from Excel File
  • Database Connection
  • Hands On

Advantages of Selenium automation testing

  • Selenium Features
  • Concept of Selenium Integrated Development Environment
  • Understanding of the Selenium IDE features
  • Addition of Script assertions and general commands
  • Deploying the first Selenium Script
  • Sample project IDE
  • Recording Selenium test case
  • Hands On

Selenium Web driver Automation

  • Architecture of Selenium Web Driver
  • Download and installation
  • Creating a Java function using Selenium and execution
  • Hands On

Deploying Web Drivers for scripting

  • Getting the HTML source of Web Element
  • Table and Form Elements
  • Firebug extension and Fire Path installation
  • Advance User Interactions and Cross Browser Testing
  • Hands On

Deep dive into Selenium Web Driver

  • Action Commands
  • Web Table / Date Picker
  • How to Implement Switching Commands in WebDriver
  • Alerts
  • Frames
  • Hands On

Switching Operations in WebDriver using Window

  • Selenium Webdriver Wait
  • Implicit wait, Explicit wait
  • Deploying searching elements using the link text, name, using XPath
  • Calendar
  • Hands On

Introduction to TestNG Framework

  • Introduction to TestNG
  • Advantages of TestNG
  • Installing TestNG on Eclipse
  • Rules to write TestNG
  • TestNG Features
  • Annotations
  • Grouping
  • Sequencing: Prioritization and Dependency
  • Enable/Disable a test case
  • Parameterization: Using Xml file and DataProvider
  • Parallel Testing & Cross Browser Testing
  • TestNG Report: HTML Report, Console Report, XML Report

JUnit Operations and Test Framework

  • Annotations, Methods in JUnit
  • Junit Test Suites, ANT Build and JUNIT reporting
  • Types of Test Automation Framework
  • Module Based Testing Framework
  • Data Driven Testing Framework
  • Keyword Driven Testing Framework
  • Hybrid Driven Testing Framework
  • How to implement Testing Framework in Project

Object Repository

  • Understanding of Object Repository
  • Learning sample scripts using object repository
  • Page Object Modelling
  • Page Factory

JavaScript Functions

  • Autosuggestion
  • Headless Browser
  • Sikuli
  • XPath

Got a question for us? Please mention it in the comments section and we will get back to you.

 

 

 

 

0 responses on "How to create TestNG Listeners"

Leave a Message

Your email address will not be published. Required fields are marked *