TestNG中 ITestListener 的使用

发表于:2018-3-29 13:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:蓝冰lanbing    来源:博客园

  1.关于testng中ITestListener 的相关介绍文档,请参考:
  http://javadox.com/org.testng/testng/6.8.7/org/testng/ITestListener.html
  2.ITestListener 的实际相关应用 
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
//implements实现接口ITestListener
public class customListener implements ITestListener{
    
    public void onFinish(ITestContext context) {
        System.out.println("finish test");
    }
    public void onStart(ITestContext context) {
        System.out.println("start test");
    }
    
    public void onTestFailedButWithinSuccessPercentage(ITestResult result) {
        System.out.println("Result fail but with success percentage");
    }
    @Override
    public void onTestFailure(ITestResult result) {
        System.err.println(result.getTestClass().getName() + "." + result.getMethod().getMethodName() + " : failed");
        
    }
    @Override
    public void onTestSkipped(ITestResult result) {
        System.err.println(result.getTestClass().getName() + "." + result.getMethod().getMethodName() + " : skipped");
        
    }
    public void onTestStart(ITestResult result) {
        System.out.println("***start on test***"+ result.getMethod().getMethodName() );
    }
    public void onTestSuccess(ITestResult result) {
        
        System.err.println(result.getTestClass().getName() + "." + result.getMethod().getMethodName() + " : passed");
    }
}
  注意:下面方法一和方法二用的是同一个类(customListener )
  方法一:采用注释法添加监听设置
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
 
public class testforCustomList {
     
     
    @Listeners(customListener.class)//此处指明了使用自定义的listener。
    public class listenerTest {
 
        @Test
        public void listener1(){
            System.out.println("it is the first test");
        }
 
        @Test
        public void listener2(){
            System.out.println("it is the second test");
        }
    }
}
  测试结果如下:
[RemoteTestNG] detected TestNG version 6.8.9
[TestNG] Running:
  C:\Users\Administrator\AppData\Local\Temp\testng-eclipse-1101982489\testng-customsuite.xml
start test
***start on test***listener1
it is the first test
WebDriverAPI.testforCustomList$listenerTest.listener1 : passed***start on test***listener2
WebDriverAPI.testforCustomList$listenerTest.listener2 : passed
it is the second test
finish test
PASSED: listener1
PASSED: listener2
===============================================
    Default test
    Tests run: 2, Failures: 0, Skips: 0
===============================================
===============================================
Default suite
Total tests run: 2, Failures: 0, Skips: 0
===============================================
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 0 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@3b6eb2ec: 50 ms
[TestNG] Time taken by org.testng.reporters.EmailableReporter2@7a0ac6e3: 10 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@43a25848: 80 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@2d6e8792: 10 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@5b464ce8: 10 ms
  方法二:使用testng.xml实现监听设置
import org.testng.annotations.Test;
public class testforCustomList {
    public class listenerTest {
        @Test
        public void listener1(){
            System.out.println("it is the first test");
        }
        @Test
        public void listener2(){
            System.out.println("it is the second test");
        }
    }
}
  XML:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="webTest">
    <listeners>
        <listener class-name="WebDriverAPI.customListener"></listener>
    </listeners>
    <test name="listener test">
        <classes>
            <class name="WebDriverAPI.testforCustomList" />
        </classes>
    </test>
</suite>
  运行结果:
[RemoteTestNG] detected TestNG version 6.8.9
[TestNG] Running:
  F:\workplace\webTest\testngXML\listener.xml
start test
***start on test***listener1
it is the first test
WebDriverAPI.testforCustomList$listenerTest.listener1 : passed
WebDriverAPI.testforCustomList$listenerTest.listener2 : passed
***start on test***listener2
it is the second test
finish test
===============================================
webTest
Total tests run: 2, Failures: 0, Skips: 0
===============================================

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号