TestNG中 ITestListener 的使用
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 的使用的更多相关文章
- testng日志 ITestListener
上一节我们写一个日志类 extends TestListenerAdapter ----------TestListenerAdapter 是 ITestListener 实现的一个类 这一节,我 ...
- TestNG中的数据源DataProvider概述
http://blog.csdn.net/taiyangdao/article/details/52141711 在上一篇文章中,我们知道带参数的测试方法,可以在testng.xml配置文件中为其参数 ...
- java&testng中Assert
用testng中的assert做断言时,如果断言失败,则在当前方法中失败的语句后的语句将不会再执行: 如图: 看控制台输出语句:
- TestNG中的DataProvider返回Iterator<Object[]>的妙用
TestNG中使用DataProvider有个好处,就是: 1. 在执行用例的时候dataProvider迭代中的每组数据都是作为一个用例执行 2. 在测试数据有规律的情况下,免去了添加testXML ...
- 简单聊聊TestNG中的并发
前言 最近在做项目里的自动化测试工作,使用的是TestNG测试框架,主要涉及的测试类型有接口测试以及基于业务实际场景的场景化测试.由于涉及的场景大多都是大数据的作业开发及执行(如MapReduce.S ...
- 持续集成:TestNG中case之间的关系
持续集成:TestNG中case之间的关系 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...
- 【转】TestNG中的并发(多线程)
优势 并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力 多线程方式拥有很大的优势: 1). 减少测试运行时间 如果测试集里包含了大量的用 ...
- TestNG中group的用法
TestNG中的组可以从多个类中筛选组属性相同的方法执行. 比如有两个类A和B,A中有1个方法a属于组1,B中有1个方法b也属于组1,那么我们可以通过配置TestNG文件实现把这两个类中都属于1组的方 ...
- TestNg中的断言你真的了解吗
前言 在执行自动化测试脚本的时候,我们需要自动判断测试脚本执行完成后的实际结果是否与预期结果一致,这个时候就需要在程序运行之前写入断言,判断当前程序执行后是否正常. 关于TestNG断言分为两种: 软 ...
随机推荐
- shell脚本 系统信息检测
一.简介 源码地址 日期:2018/4/12 介绍:根据指令展示不同的系统数据 效果图: 二.使用 适用:centos6+ 语言:中文 注意:无 下载 wget https://raw.githubu ...
- IOS开发入门教程-总结篇-写给狂热的编程爱好者们
程序发轻狂,代码阑珊,苹果开发安卓狂!--写给狂热的编程爱好者们 写在前面的话 学习iOS应用程序开发已有一段时间,最近稍微闲下来了,正好也想记录一下前阶段的整个学习过程.索性就从最基础的开始,一步一 ...
- STL模板前言(1)
STL提供以下数据结构方便使用: 顺序容器: vector(动态数组):从后面直接插入删除元素,直接访问任何元素. deque(双端队列):从前面和后面快速插入删除,直接访问任何元素. list(双链 ...
- 工厂为什么要进行计划排产,APS高级计划排程系统的优势作用是什么?
我们每个人的指挥中心是大脑,大脑对我们身体发出各种各样的指令,不停的告诉我们身体去干什么. 那么,一个制造企业的指挥中心是哪里?工厂每天都会接到各种各样的订单,通过几百上千的工人,使用各种设备来生产. ...
- JeeSite Spring Cloud安装搭建
引言 JeeSite Cloud 具备 JeeSite 4.x 的所有功能,是在 JeeSite 4.x 基础之上,完成的 Spring Cloud 分布式系统套件的整合.它利用 JeeSite 4. ...
- CF706A Beru-taxi 题解
Content 有一个人在点 \((a,b)\) 等出租车.已知他周围共有 \(n\) 辆出租车,其中第 \(i\) 辆车在点 \((x_i,y_i)\) 上,速度为 \(v_i\).这个人想打能让他 ...
- AT2686 [ARC080A] 4-adjacent 题解
Content 给定一个长度为 \(n\) 的数列 \(a\),请将其重新排列,使得 \(\forall i\in[1,n-1]\),都有 \(4\mid (a_i\cdot a_{i+1})\),或 ...
- C++11新特性:enable_shared_from_this
enable_shared_from_this是一个模板类,定义于头文件<memory>,其原型为:template< class T > class enable_share ...
- Linux使用docker安装MinIO
官方地址:http://docs.minio.org.cn/docs/master/minio-docker-quickstart-guide 拉取镜像 docker pull minio/minio ...
- 往docker中的mysql导入sql文件
先把sql文件上传到服务器 然后拷贝sql文件到docker中的mysql 容器中 docker cp test.sql mysql:/test.sql 这里的mysql都是容器名称 根据自己的来 用 ...