• 常用接口

  • IExecutionListener   监听TestNG运行的启动和停止。

  • IAnnotationTransformer 注解转换器,用于TestNG测试类中的注解。

  • ISuiteListener 测试套件监听器,监听测试套件的启动和停止。

  • ITestListener  测试运行的监听器。

  • IConfigurationListener 监听配置方法相关的接口。

  • IMethodInterceptor 用于修改TestNG即将运行的测试方法列表。

  • IInvokedMethodListener 测试方法拦截监听,用于获取被TestNG调用的在Method的Before 和After方法监听器。该方法只会被配置和测试方法调用。

  • Ihookable 若测试类实现了该接口,当@Test方法被发现时,它的run()方法将会被调用来替代@Test方法。这个测试方法通常在IHookCallBack的callback之上调用,比较适用于需要JASS授权的测试类。例如:

public void run(final IHookCallBack icb, ITestResult testResult) {
// Preferably initialized in a @Configuration method
mySubject = authenticateWithJAAs(); Subject.doAs(mySubject, new PrivilegedExceptionAction() {
public Object run() {
icb.callback(testResult);
}
};
}
  • Ireporter 实现该接口可以生成一份测试报告。

  • IRetryAnalyzer 该接口实现重试失败用例。

  • 启用监听

  • 使用注解@Listener({监听类.class})

@Listeners({SuiteListener.class})
public class InvokedMethodListenerExample {
@BeforeSuite
public void beforeSuite() {
System.out.println("before suite");
}
@Test
public void t1() {
System.out.println("t1 test method");
} @AfterSuite
public void afterSuite() {
System.out.println("after suite");
}
}
  • 在TestNG中配置监听类

?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite verbose="0" name="listeners-test">
<listeners>
<listener class-name="listeners.ProgressTracker" />
<listener class-name="listeners.SuitListener" />
<listener class-name="listeners.RetryListener" />
</listeners>
<test name="listeners.testng">
<packages>
<package name="listeners" />
</packages>
</test>
</suite>
  • 在maven-surefire插件中配置监听类

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.17</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>TestNG_${env}.xml</suiteXmlFile>
</suiteXmlFiles>
<properties>
<property>
<name>listener</name>
<value>listeners.SuitListener, listeners.RetryListener</value>
</property>
</properties>
</configuration>
</plugin>

TestListenerAdapter 一个基于ITestListener 的简单适配器,存储了被运行的所有测试用例。可以通过如下方法获取到测试结果:

  • getPassedTests()
  • getFailedTests()
  • getSkippedTests()

当你扩展这个类来重载这些方法时,如果你想要这个列表测试Test被维护时,需要调用super的同类。

TestNG Listener的更多相关文章

  1. testng 失败自动截图

    testng执行case failed ,testng Listener会捕获执行失败,如果要实现失败自动截图,需要重写Listener的onTestFailure方法 那么首先新建一个Listene ...

  2. Parallel WebDriver executions using TestNG

    In this post, we will see how does one make use of TestNG to kick off parallel UI tests using WebDri ...

  3. TestNg 12. extentReport测试报告

    直接上代码:以下是我的目录结构,首先新建一个包名字叫 com.tester.extent.demo,直接新建两个类就可以,名字叫  ExtentTestNGIReporterListener  和 T ...

  4. TestNG 六 测试结果

    一.成功.失败和断言 如果一个测试没有抛出任何异常就完成运行或者说抛出了期望的异常(参见@Test注解的expectedExceptions属性文档),就说,这个测试时成功的. 测试方法的组成常常包括 ...

  5. 实战 TestNG 监听器

    TestNG 是一个开源的自动化测试框架,其灵感来自 JUnit 和 NUnit,但它引入了一些新功能,使其功能更强大,更易于使用.TestNG 的设计目标是能够被用于进行各种类型测试:单元测试.功能 ...

  6. 使用extentreports美化testng报告2,增加监听

    有兴趣研究了extentreports报告美化插件,但是因为发现插件有很多内容不能自定义,所以放弃了这个插件,我扩充了官方代码的demo,在testng中增加了监听,并打印了一些测试用例,现在我把两个 ...

  7. Java自动化测试框架-08 - TestNG之并行性和超时篇 (详细教程)

    一.并行性和超时 您可以指示TestNG以各种方式在单独的线程中运行测试. 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: 二.并 ...

  8. Java自动化测试框架-10 - TestNG之测试结果篇

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  9. TestNg失败重跑—解决使用 dataProvider 参数化用例次数冲突问题

    问题背景 在使用 testng 执行 UI 自动化用例时,由于 UI自动化的不稳定性,我们在测试的时候,往往会加上失败重跑机制.在不使用 @DataProvider 提供用例参数化时,是不会有什么问题 ...

随机推荐

  1. .net开源工作流引擎ccflow

    关于济南驰骋信息技术有限公司的.net开源工作流引擎 驰骋工作流引擎,工作流程管理系统:简称ccflow,驰骋一体化解决方案简称ccport. ccflow是济南驰骋信息技术有限公司向社会提供的一款1 ...

  2. JavaScript DOM-Ready 机制

    IE9开始和其他现代浏览器可以通过绑定DOMContentLoaded事件:IE9之前的的浏览器需要绑定onreadystatechange事件并等待readyState为"complete ...

  3. Mathlab编程-微积分在Matlab中的解法

    这一章节将介绍一系列典型的微积分问题(求极限.级数.定积分.导数.重积分等)在Matlab中的求解. 首先关于极限: (1)    数列极限: 给出下面三段例程. 求解数列极限的limit函数参数说明 ...

  4. Java做界面的感想。。

    我用Swing做出的例子: JavaFX做出的界面: 后来又做出了自己编写的一套基于Synth的L&F,其与直接在代码中重绘某个组件不同,最大优点是具有可插拔性,即在不改变原有程序代码的情况下 ...

  5. 在Windows上安装私有GitHub的开源替代-GitLab

    在我之前的一篇博客中介绍过GitLab: 开源免费的git管理工具,今天说一下怎么在windows安装GitLab. BitNami可以很容易的帮助你安装开源应用,和Helicon Zoo类似,我之前 ...

  6. 弹出窗口zDialog的使用

    因为没有元素可以显示到Frameset上面去,所以重新定义了,一个index.htm,对其的操作是: Index.htm    <script language="javascript ...

  7. LINQ 从 CSV 文件生成 XML

    本文参考:http://msdn.microsoft.com/zh-cn/library/bb387090.aspx 下面的代码对字符串数组执行 LINQ 查询. 在 C# 版本中,该查询使用 let ...

  8. Bootstrap-基于bootstrap的后台二级垂直菜单

    最近做一个后台的管理项目,用到了Twitter推出的bootstrap前端开发工具包,是一个基于css3/html5的框架.花周末时间,写了一个非常简单后台的菜单.首先,看一下菜单的结构: 预览地址  ...

  9. shell获取 linux 系统的位数

    getconf LONG_BIT 直接返回  32  或者 64

  10. Windows内核之线程的调度,优先级,亲缘性

    1 调度 Windows不是实时操作系统,它是抢占式多线程操作系统.在如果全部优先级同样的情况下,CPU对线程的调度原则是每隔20m就会切换到下一个线程,依据Context中的IP和SP来接着运行上次 ...