TestNG监听器·ITestListener监听器

前言

ITestListener监听器主要针对测试方法和xml文件中的test标签来进行相应监控。

正文

ITestListener监听器封装的方法以及方法的使用规则如下:

onTestStart():测试方法开始时才执行此方法。这里测试方法是指@Test注解的测试方法;
onTestSuccess():如果测试方法执行成功才执行此方法;
onTestFailure():如果测试方法执行失败才执行此方法;
onTestSkipped():如果测试方法执行跳过才执行此方法;
onTestFailedButWithinSuccessPercentage():自定义测试方法的执行结果。比如测试方法中有多个断言,其中一个断言没有通过,其他的断言都通过了,你可以根据具体情况,判断此测试方法执行通过;
onStart():在xml文件中的每一个<test>标签跑之前运行;
onFinish():在xml文件中的每一个<test>标签跑之后运行。
TestNGTestListener2.java
@Listeners(CustomListener2.class)
public class TestNGTestListener2 {
    @BeforeClass
    public void setUp(){
        System.out.println("TestNGTestListener2类中的setUp方法");
    }
    @AfterClass
    public void tearDown(){
        System.out.println("TestNGTestListener2类中的tearDown方法");
    }
    @Test
    public void testMethod1(){
        System.out.println("TestNGTestListener2类中的testMethod1方法");
        Assert.assertTrue(true);
    }
    @Test
    public void testMethod2(){
        System.out.println("TestNGTestListener2类中的testMethod2方法");
        Assert.assertFalse(true);
    }
}

CustomListener2.java

public class CustomListener2 implements ITestListener {

    @Override
    public void onTestStart(ITestResult iTestResult) {
        //测试方法开始时才执行此方法
        System.out.println("onTestStart->test method name:"+iTestResult.getName());
    }

    @Override
    public void onTestSuccess(ITestResult iTestResult) {
        //如果测试方法执行成功才执行此方法
        System.out.println("onTestSuccess->test method name:"+iTestResult.getName());
    }

    @Override
    public void onTestFailure(ITestResult iTestResult) {
        //如果测试方法执行失败才执行此方法
        System.out.println("onTestFailure->test method name:"+iTestResult.getName());
    }

    @Override
    public void onTestSkipped(ITestResult iTestResult) {
        //如果测试方法执行跳过才执行此方法
        System.out.println("onTestSkipped->test method name:"+iTestResult.getName());
    }

    @Override
    public void onTestFailedButWithinSuccessPercentage(ITestResult iTestResult) {

    }

    @Override
    public void onStart(ITestContext iTestContext) {
        //在xml文件中的每一个<test>标签跑之前运行
        System.out.println("onStart->test tag name:"+iTestContext.getName());
    }

    @Override
    public void onFinish(ITestContext iTestContext) {
        //在xml文件中的每一个<test>标签跑之后运行
        System.out.println("onFinish->test tag name:"+iTestContext.getName());
    }
}

xml文件:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Listeners TestSuite">
    <test name="Test1">
        <classes>
            <class name="testng.TestNGTestListener2"></class>
        </classes>
    </test>
    <test name="Test2">
        <classes>
            <class name="testng.TestNGTestListener2"></class>
        </classes>
    </test>
</suite>

执行结果:

三人行,必有我师焉。欢迎指正。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值