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
===============================================

TestNG中 ITestListener 的使用的更多相关文章

  1. testng日志 ITestListener

    上一节我们写一个日志类 extends   TestListenerAdapter ----------TestListenerAdapter 是 ITestListener 实现的一个类 这一节,我 ...

  2. TestNG中的数据源DataProvider概述

    http://blog.csdn.net/taiyangdao/article/details/52141711 在上一篇文章中,我们知道带参数的测试方法,可以在testng.xml配置文件中为其参数 ...

  3. java&testng中Assert

    用testng中的assert做断言时,如果断言失败,则在当前方法中失败的语句后的语句将不会再执行: 如图: 看控制台输出语句:

  4. TestNG中的DataProvider返回Iterator<Object[]>的妙用

    TestNG中使用DataProvider有个好处,就是: 1. 在执行用例的时候dataProvider迭代中的每组数据都是作为一个用例执行 2. 在测试数据有规律的情况下,免去了添加testXML ...

  5. 简单聊聊TestNG中的并发

    前言 最近在做项目里的自动化测试工作,使用的是TestNG测试框架,主要涉及的测试类型有接口测试以及基于业务实际场景的场景化测试.由于涉及的场景大多都是大数据的作业开发及执行(如MapReduce.S ...

  6. 持续集成:TestNG中case之间的关系

    持续集成:TestNG中case之间的关系   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  7. 【转】TestNG中的并发(多线程)

    优势 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力 多线程方式拥有很大的优势: 1). 减少测试运行时间 如果测试集里包含了大量的用 ...

  8. TestNG中group的用法

    TestNG中的组可以从多个类中筛选组属性相同的方法执行. 比如有两个类A和B,A中有1个方法a属于组1,B中有1个方法b也属于组1,那么我们可以通过配置TestNG文件实现把这两个类中都属于1组的方 ...

  9. TestNg中的断言你真的了解吗

    前言 在执行自动化测试脚本的时候,我们需要自动判断测试脚本执行完成后的实际结果是否与预期结果一致,这个时候就需要在程序运行之前写入断言,判断当前程序执行后是否正常. 关于TestNG断言分为两种: 软 ...

随机推荐

  1. 编译工具ant部署

    目录 一.环境准备 二.安装 三.使用验证 一.环境准备 当前环境:centos7.3一台 软件版本:ant-1.9 部署目录:/usr/local/ant yum依赖 yum -y java-1.8 ...

  2. greeting-150

    拿到程序例行检查,可以看出程序是32位的程序 将程序放入ida中进入主函数查看 但是我们将程序运行一次后发现程序还运行了nao的程序 说明程序在中间还引用了nao函数,通过代码审计我们可以很直接的看到 ...

  3. SpringBoot 2.x 自定义拦截器并解决静态资源访问被拦截问题

      自定义拦截器 /** * UserSecurityInterceptor * Created with IntelliJ IDEA. * Author: yangyongkang * Date: ...

  4. Django把现在时间写入数据库,模板渲染在页面中

    1. 导入time模块 import time 2. 获取现在时间,使用"年-月-日 时:分:秒"这样的模板,赋值给变量 在views.py中: pt = time.strftim ...

  5. CF1492B Card Deck 题解

    Content 有 \(n\) 张纸牌组成的一个牌堆,每张纸牌都有一个价值 \(p_1,p_2,\dots,p_n\).每次选出最顶上的几个牌放到另外一个一开始为空的牌堆里面.定义一个牌堆的总值为 \ ...

  6. CF177A1/A2 Good Matrix Elements 题解

    Content 给定一个 \(n\times n\) 的矩阵,每个元素都有一个值,求出处于两条对角线以及中间行和中间列的元素之和. 数据范围:\(1\leqslant n\leqslant 5(\te ...

  7. CF78B Easter Eggs 题解

    Content 有一个有 \(n\) 个点的环,你可以将其染成一种颜色.一共有 \(7\) 种颜色(R,O,Y,G,B,I,V)可以选择.你的染色方案应该满足下面的要求: 每一个点都要被染色,且 \( ...

  8. Excel数据导出功能

    HTML代码: <a id="aExportData" hidden><span>Export</span></a> <div ...

  9. ElasticSearch 使用

    一.索引操作 --------------------------------- 创建索引(PUT) PUT /索引名 curl -X PUT http://10.20.20.214:9200/sho ...

  10. 好奇怪啊,如果邮箱JSON格式的字符串不是在一行上,那么转为JSON将转换不成功,估计是数据格式有问题吧

    好奇怪啊,如果邮箱JSON格式的字符串不是在一行上,那么转为JSON将转换不成功,估计是数据格式有问题吧, 打印出的数据必须是如下的在一行的字符串,才可以转换为JSON格式成功.