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断言分为两种: 软 ...
随机推荐
- 高可靠性——TSN 802.1Qci协议介绍
TSN协议族根据实现功能可以分为:定时与同步.延时.可靠性和资源管理四个类别,往期的时间同步--TSN协议802.1AS介绍一文向大家介绍了定时与同步功能的核心--802.1AS协议,而在基于TSN工 ...
- iOS开发——密码存储之keychain的使用
iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式.每个ios程序都有一个独立的keychain存储.从ios 3.0开始,跨程序分享keychain变得可行. 下 ...
- LuoguB2045 晶晶赴约会 题解
Content 贝贝邀请晶晶下个星期 \(x\)(如果 \(x=7\) 表示星期日)一起去看展览,但是晶晶下个星期 \(1,3,5\) 都有课.请你判断晶晶能否同意贝贝的请求. 数据范围:\(x\in ...
- grep 命令过滤配置文件中的注释和空
grep 用法 Usage: grep [OPTION]... PATTERN [FILE]... Search for PATTERN in each FILE or standard input. ...
- 使用.NET 6开发TodoList应用(5)——领域实体创建
需求 上一篇文章中我们完成了数据存储服务的接入,从这一篇开始将正式进入业务逻辑部分的开发. 首先要定义和解决的问题是,根据TodoList项目的需求,我们应该设计怎样的数据实体,如何去进行操作? 长文 ...
- CentOS7下使用NFS文件共享给Window server 2012
CentOS7下使用NFS文件共享给Window server 2012 2018年08月24日 23:15:54 疼迅扣扣 阅读数:443 出自https://blog.csdn.net/u013 ...
- JAVA中CountDownLatch的简单示例
public static void main(String[] args) throws InterruptedException { CountDownLatch latch =new Count ...
- Another kind of Fibonacci(hdu3306)
Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- 1135 - Count the Multiples of 3
1135 - Count the Multiples of 3 PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limi ...
- vue使用自定义指令v-dialogDrag来控制element ui中el-dialog的拖动缩放,拉伸问题
1 在vue的utils中新建一个dialogDrag.js import Vue from 'vue' Vue.directive('dialogDrag', { bind(el, binding, ...