zoukankan      html  css  js  c++  java
  • TestNG listeners

    Testng listener is defined as interface that modifies the default TestNG's behavior.  As the name suggests Listeners "listen" to the event defined the test script and behave accordingly.  It's used in automation test scripts by implementing Listeners Interface.  It allows customizing TestNG reports or logs.  There are many types of TestNG listeners available which allow you to hange the TestNG's behavior.

    example listeners:

    1. IAnnotationTransfrormer

    2. IAnnotationTransformer2

    3. IConfigurable

    4. IConfigurationListener

    5. IExecutionListener

    6. IHookable

    7. IInvokedMethodListener

    8. IInvokedMethodListener2

    9. IMethodInterceptor

    10. IReporter

    11. ISuiteListener

    12. ITestListener

    take ITestListener for example, this listener has following methods:

    onStart() - method is called when any test starts

    onTestSuccess() - method is called on the success of any test

    onTestFailure() - method is called on the failure of any test

    onTestSkipped() - method is called on skipped of any test

    onTestFailedButWithinSuccessPercentage - method is called each time test fails but is within success percentage.

    onFinish() - method is called after all tests are executed.

    Steps to create a TestNG Listener

    1) create class that implements 'ITestListener', and override the defined methods in interface.

    public class ListenerTest implements ITestListener                        
    {        
    
        @Override        
        public void onFinish(ITestContext arg0) {                    
            // TODO Auto-generated method stub                
                    
        }        
    
        @Override        
        public void onStart(ITestContext arg0) {                    
            // TODO Auto-generated method stub                
                    
        }        
    
        @Override        
        public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {                    
            // TODO Auto-generated method stub                
                    
        }        
    
        @Override        
        public void onTestFailure(ITestResult arg0) {                    
            // TODO Auto-generated method stub                
                    
        }        
    
        @Override        
        public void onTestSkipped(ITestResult arg0) {                    
            // TODO Auto-generated method stub                
                    
        }        
    
        @Override        
        public void onTestStart(ITestResult arg0) {                    
            // TODO Auto-generated method stub                
                    
        }        
    
        @Override        
        public void onTestSuccess(ITestResult arg0) {                    
            // TODO Auto-generated method stub                
                    
        }        
    }        

    Then we can modify the methods with your logic.

    2) Create test class:

    public class TestCases {            
        
    @Test        
    public void TestToFail()                
    {        
        System.out.println("This method to test fail");                    
        Assert.assertTrue(false);            
    }        
    }

    3) Add our listener to the test, the first way is to user Listeners annotation as below, the annotation can be added to a class or a test method.

    @Listeners(ListenerTest.class)                

    If project has multiple classes adding Listeners to each one of them could be cumbersome and error prone.  In such cases, we can add listeners tag in testng.xml.

  • 相关阅读:
    Java程序员:一整个项目的具体开发流程介绍
    JAVA常用API整理
    Java开发人员必知必会的20种常用类库和API
    SpringBoot_web开发【实验】-员工列表-链接高亮&列表完成
    luogu P1754 球迷购票问题 |动态规划
    luogu P1566 加等式 |背包问题方案数
    luogu P1564 膜拜 |动态规划
    luogu P1509 找啊找啊找GF |背包
    P1474 货币系统 Money Systems |背包方案数
    cloudera安装报错 socket.gaierror: [Errno -2] Name or service not known
  • 原文地址:https://www.cnblogs.com/tingtwang/p/11098180.html
Copyright © 2011-2022 走看看