TestNG Listener

  • 常用接口

  • 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的同类。

时间: 2024-11-10 14:02:31

TestNG Listener的相关文章

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 WebDriver. So lets try doing this with a typical cooking recipe style :) So here are the ingredients that are required. A Factory class that will create Web

[Selenium+Java] Listeners and their use in Selenium WebDriver

Original URL: https://www.guru99.com/listeners-selenium-webdriver.html TestNG Listeners in Selenium WebDriver There are two main listeners. WebDriver Listeners TestNG Listeners In this tutorial, we will discuss onTestngListeners. Here is what you wil

使用ExtentReport生成漂亮的测试报告

1.引入依赖 1 <dependency> 2 <groupId>com.relevantcodes</groupId> 3 <artifactId>extentreports</artifactId> 4 <version>2.41.1</version> 5 </dependency> 6 7 <dependency> 8 <groupId>com.vimalselvam</g

[TestNG] [WARN] Ignoring duplicate listener : org.testng.IDEATestNGRemoteListenerEx

1. 使用6.10,和6.14.3版本testng,出现多条warn信息 ................. <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.10</version> <scope>test</scope> </dependency> 2. 使用RE

Webdriver+testNG+ReportNG+Maven+SVN+Jenkins自动化测试框架的pom.xml配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersi

Mac Eclipse+Maven+TestNg+ReportNg 生成测试报告

转自:http://blog.csdn.net/a542551042/article/details/46729585 TestNG 是java 的单元测试框架,功能很强大,很方便,但是自动生成的测试报告有待改善,可以使用TestNg 自带的TestNG_xslt更改TestNG报告的样式,这里主要讲解ReportNg,美化下TestNG 的报告 TestNg(TestNg官网): http://testng.org/doc/index.html ReportNg(ReportNg官网): ht

Appuim项目实战---监听testng

背景:在我们项目中使用testng的会使用到监听,主要用于在启动testng前做一些事,还有在对于testng方法运行完了后在做的一些是,我们使用监听,接上个案例 监听类继承TestListenerAdapter,实现以下几个方法 package until; import org.testng.ITestContext; import org.testng.ITestResult; import org.testng.TestListenerAdapter; public class Test

TestNG基本注解(二)

1. Before类别和After类别注解 @BeforeSuite @AfterSuite @BeforeTest @AfterTest @BeforeClass @AfterClass @BeforeMethod @AfterMethod 上述的注解分为Before类别和After类,我们可以在Before类别的注解方法里面做一些初始化动作,如实例化数据库连接.新建数据库连接池.创建线程池.打开文件流等等.然后,我们可以在After类别的注解方法里面做一些销毁动作,如释放数据库连接.销毁数据

为Testng配置ReportNG

ReportNG是单元测试框架TestNG的一个简单框架,用来替代默认的TestNG html report生成HTML Report.你也能够使用TestNG监听器自由配置html report. Step1:增加以下的jar包到你自己的项目下 reportng-1.1.4.jarvelocity-dep-1.4.jarguice-3.0.jar 架构如下图: Step2:为了reportng生效,我们需要禁用默认的testng监听器 1.进入eclipse,windows->Properti