java使用testng的TestListenerAdapter接口进行日志打印监听

本文详细介绍如何在Java TestNG项目中配置测试报告,包括设置日志监听器、testng.xml配置及查看日志报告的方法。通过实现TestListenerAdapter接口,自定义日志输出,便于跟踪测试进度。

文章目录


一般做的 testng 测试项目,往往离不开几个产出:1.测试截图 2.测试 log 日志 3.测试报告
这里我们来详细讲解下 java testng 项目的测试报告怎么配置

前提准备

项目需要配置好 slf4j + log4j 的日志系统,具体配置方式如下博文所示:

slf4j+log4j 配置 java 日志系统

配置完之后下面才能使用 log.info 的形式,也才能在项目下 logs 文件夹的 log 日志中看到 testng 的日志监听器中的 log 输出

第一步:编写日志监听器

注意:此日志监听器的作用不是来产生 log 日志,这个是 slf4j+log4j 完成的任务,此日志监听器的作用是为了将测试不同阶段进行 log 记录写进由 slf4j + log4j 搭好的日志文件中

首先项目依赖肯定得要有 testng 依赖,然后我们在 listener 包中编写监听器类,通过继承 testng 的 TestListenerAdapter 接口,代码如下:

@Slf4j
public class TestLogListener extends TestListenerAdapter {
    /**
     * 开始
     *
     * @param iTestContext ITestContext
     */
    @Override
    public void onStart(ITestContext iTestContext) {
        super.onStart(iTestContext);
        log.info(String.format("====================%s测试开始====================", iTestContext.getName()));
    }

    /**
     * 测试开始
     *
     * @param iTestResult ITestResult
     */
    @Override
    public void onTestStart(ITestResult iTestResult) {
        super.onTestStart(iTestResult);
        log.info(String.format("========%s.%s测试开始========", iTestResult.getInstanceName(), iTestResult.getName()));
    }

    /**
     * 测试成功
     *
     * @param iTestResult ITestResult
     */
    @Override
    public void onTestSuccess(ITestResult iTestResult) {
        super.onTestSuccess(iTestResult);
        log.info(String.format("========%s.%s测试通过========", iTestResult.getInstanceName(), iTestResult.getName()));
    }

    /**
     * 测试失败
     *
     * @param iTestResult ITestResult
     */
    @Override
    public void onTestFailure(ITestResult iTestResult) {
        super.onTestFailure(iTestResult);
        log.error(String.format("========%s.%s测试失败,失败原因如下:\n%s========", iTestResult.getInstanceName(), iTestResult.getName(), iTestResult.getThrowable()));
        
        /**
         * 出现异常进行截图操作,这里得要自己去实现
         */
    }

    /**
     * 测试跳过
     *
     * @param iTestResult ITestResult
     */
    @Override
    public void onTestSkipped(ITestResult iTestResult) {
        super.onTestSkipped(iTestResult);
        log.info(String.format("========%s.%s跳过测试========", iTestResult.getInstanceName(), iTestResult.getName()));
    }

    /**
     * 结束
     *
     * @param iTestContext ITestContext
     */
    @Override
    public void onFinish(ITestContext iTestContext) {
        super.onFinish(iTestContext);
        log.info(String.format("====================%s测试结束====================", iTestContext.getName()));
    }
}

可以看见我们实现 TestListenerAdapter 接口的监听器类中的方法都是重写了接口方法,内部都要自己去实现的,在 testng.xml 中还需要配置监听器来监听 log 日志信息。一般我们会在 onTestFailure 方法中进行界面出错截图代码的编写

第二步:testng.xml 配置监听器

<listeners>
	<listener class-name="com.abcnull.listener.TestLogListener"/>
</listeners>

第三步:查看日志报告

运行使用了 log 日志系统的测试用例之后,我们能在产出的 log 日志查看到测试运行不同阶段时候的 log 信息,这些 log 信息正好就是我们日志监听器中自己写的那些 log 打印日志

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值