我是靠谱客的博主 沉默草莓,最近开发中收集的这篇文章主要介绍TestNG中的ITestListener,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

一、ITestListener监听规则

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

onTestStart():测试方法开始时才执行此方法。这里测试方法是指@Test注解的测试方法;

onTestSuccess():如果测试方法执行成功才执行此方法;

onTestFailure():如果测试方法执行失败才执行此方法;

onTestSkipped():如果测试方法执行跳过才执行此方法;

onTestFailedButWithinSuccessPercentage():自定义测试方法的执行结果。比如测试方法中有多个断言,其中一个断言没有通过,其他的断言都通过了,你可以根据具体情况,判断此测试方法执行通过;

onStart():在xml文件中的每一个<test>标签跑之前运行;

onFinish():在xml文件中的每一个<test>标签跑之后运行。

二、使用方法

1、在一个包下新建一个MyListener.java的文件:

package com.demo.testmg.util;

import org.testng.Assert;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.testng.annotations.Test;


public class MyListener implements ITestListener {

    @Override
    public void onTestStart(ITestResult iTestResult) {
        System.out.println("onTestStart=========================================================================" + iTestResult.toString());
    }

    @Override
    public void onTestSuccess(ITestResult iTestResult) {
        System.out.println("onTestSuccess=========================================================================" + iTestResult.toString());
    }

    @Override
    public void onTestFailure(ITestResult iTestResult) {
        System.out.println("用例运行失败,onTestFailure=========================================================================");
        // 调用截图方法
    }

    @Override
    public void onTestSkipped(ITestResult iTestResult) {
        System.out.println("onTestSkip=========================================================================" + iTestResult.toString());
    }

    @Override
    public void onTestFailedButWithinSuccessPercentage(ITestResult iTestResult) {

    }

    @Override
    public void onStart(ITestContext iTestContext) {
        System.out.println("onStart=========================================================================" + iTestContext.toString());

    }

    @Override
    public void onFinish(ITestContext iTestContext) {
        System.out.println("onFinish=========================================================================" + iTestContext.toString());

    }

}

2、testng.xml文件,并设置Lienter范围。

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="test" preserve-order="true">

       <listeners>
              <listener class-name="com.demo.testmg.util.MyListener"/>
       </listeners>

       <test name="testPoc" preserve-order="true">
              <classes>
                     <!--<class name="com.demo.testmg.tests.all.xxx" />-->

                     <class name="com.demo.testmg.tests.all.xxx1" />
                     <class name="com.demo.testmg.tests.all.xxx2" />

              </classes>
       </test>


</suite>

3、运行结果

执行的顺序:

@BeforeSuite-->onStart()-->@BeforeClass-->@BerforeMethod-->onTestStart()-->@Test-->onTestSuccess() or onTestFailure() or onTestSkipped()-->@AfterMethod-->@AfterClass-->onFinish()-->@AfterSuite

最后

以上就是沉默草莓为你收集整理的TestNG中的ITestListener的全部内容,希望文章能够帮你解决TestNG中的ITestListener所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部