Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用testNGListenter来自定义日志

使用testNGListenter来自定义日志

作者头像
千往
发布于 2018-01-24 03:33:33
发布于 2018-01-24 03:33:33
47200
代码可运行
举报
运行总次数:0
代码可运行

背景

用testNG写用例的时候,只是打印了请求的日志,没有打印这个用例的开始和结束的标识,想加上这个标识这样更好的排查问题

这种日志是加在用例开始执行和结束,相当于spring中的AOP功能,今天翻阅了testNG的文档发现有监听器这玩意,这玩意可以在testNG执行的某一过程中进行操作;

操作步骤

直接show the code:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class TestNGLogListener extends TestListenerAdapter {

    static Logger logger = LogManager.getLogger(TestNGLogListener.class.getName());

    @Override
    public void onTestFailure(ITestResult tr) {
        log(String.format("[method: %s]",tr.getName())+ "--Test method failed\n");
    }

    @Override
    public void onTestSkipped(ITestResult tr) {
        log(String.format("[method: %s]",tr.getName())+ "--Test method skipped\n");
    }

    @Override
    public void onTestSuccess(ITestResult tr) {
        log(String.format("[method: %s]",tr.getName())+ "--Test method success\n");
    }

    @Override
    public void onTestStart(ITestResult tr) {
        log(String.format("[method: %s]",tr.getName())+ "-- START");
    }

    private void log(String string) {
        logger.info(string);
    }
}

1. 写编写一个监听器的类,继承 TestListenerAdapter 这个类,需要重写对应的几个方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void onTestFailure(ITestResult result) // 用例执行结果失败
void onTestSkipped(ITestResult result) // 跳过该条用例
void onTestSuccess(ITestResult result) // 用例执行结果成功
void onTestStart(ITestResult tr) // 用例开始执行的时候

2. 使用这个监听器,有两种方法

2.1 第一种是直接在测试用例的class上加Listener注解,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Listeners({CustomListener.class })
public class SampleTest {

    @Test
    public void testMethodOne(){
        Assert.assertTrue(true);
    }

    @Test
    public void testMethodTwo(){
        Assert.assertTrue(false);
    }

    @Test(dependsOnMethods={"testMethodTwo"})
    public void testMethodThree(){
        Assert.assertTrue(true);
    }

}

2.2 直接在testNG.xml文件中添加,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="wm-api-autotest">
    <test name="Test">
        <packages>
            <package name="com.jwen.demo"/>
        </packages>
    </test>
    <listeners>
        <listener class-name=com.jwen.demo.common.TestNGLogListener'/>
    </listeners>
</suite> <!-- Suite -->

2.3 效果展示:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-01-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)
TestNG为日志记录和报告提供的不同选项。现在,宏哥讲解分享如何开始使用它们。首先,我们将编写一个示例程序,在该程序中我们将使用 ITestListener方法进行日志记录。
北京-宏哥
2022/04/27
4760
《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)
TestNG测试用例重跑详解及实践优化
下面,详细介绍TestNG如何对失败测试用例实时重跑并解决重跑过程中所遇到问题的实践和解决方案。对失败测试用例进行实时重跑,有以下几个方面需求:
宜信技术学院
2020/04/28
1.4K0
单篇长文TestNG从入门到精通
TestNG是Test Next Generation的缩写,它的灵感来自于JUnit和NUnit,在它们基础上增加了很多很牛的功能,比如说:
dongfanger
2022/05/09
1.7K0
单篇长文TestNG从入门到精通
TestNG小技巧
TestNG是目前很流行的Java测试框架之一,作为Java技术栈的小伙伴,TestNG也是我们做单元、接口、UI自动化的常用技术(当然Junit5很不错),所以也是入门技术之一。
Criss@陈磊
2020/04/24
6960
自动化工具之Appium之报告自定义
上面报告虽然麻雀虽小但五脏俱全,但是如果用这个发送报告不是很美观,如果错误没有截图与日志,通过观察testng有需要可以继承的监听,可以自定义报告;
高楼Zee
2019/11/30
4610
实战 TestNG 监听器
TestNG 是一个开源的自动化测试框架,其灵感来自 JUnit 和 NUnit,但它引入了一些新功能,使其功能更强大,更易于使用。TestNG 的设计目标是能够被用于进行各种类型测试:单元测试、功能测试,端到端测试、集成测试,等等。NG 是 Next Generation 的简写,表示下一代,意在表示其产生的目的是要超越当前所有测试框架。TestNG 类似于 JUnit(特别是 JUnit 4),但它不是 JUnit 的扩展,而是独立的全新设计的框架。TestNG 的创造者是 Cedric Beust(塞德里克·博伊斯特)。
顾翔
2019/12/11
1.2K0
实战 TestNG 监听器
Maven test集成TestNG + ExtentReports
本篇主要讲解在maven项目的单元测试中,如何直接使用mvn test命令来驱动测试代码。
软件测试君
2020/06/09
8160
Maven test集成TestNG + ExtentReports
走进Java接口测试之测试报告ExtentReport
在走进Java接口测试之测试框架TestNG 中我们详细介绍了 TestNG 的各种用法, 在本文中,我将详细介绍如何将 ExtentReports 测试报告与TestNG集成。
高楼Zee
2019/07/17
1.8K0
走进Java接口测试之测试报告ExtentReport
TestNG用法概括
应用场景:将通用的功能抽取并封装起来,在方法中使用注解@BeforeSuite和@AfterSuite,在测试类中继承这个类,测试类在运行前会先运行@BeforeSuite注解的方法,测试类在运行后会运行@AfterSuite注解的方法
桑鱼
2020/04/14
8800
TestNG用法概括
《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)
  其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下。报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果、失败点和失败原因。另一方面,日志记录对于密切关注执行流程或在出现任何故障时进行调试很重要。默认情况下,TestNG 会为其测试执行生成不同类型的报告。这包括一个 HTML 和一个 XML 报告输出。TestNG 还允许其用户编写自己的报告程序并将其与 TestNG 一起使用。还有一个选项可以编写自己的记录器,TestNG 在运行时会通知这些记录器。
北京-宏哥
2022/04/27
9770
《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)
Allure–自动化测试报告生成
之前尝试使用过testNG自带的测试报告、优化过reportNG的测试报告,对这两个报告都不能满意。后经查找资料,发现有个神器:
全栈程序员站长
2022/09/06
8240
Allure–自动化测试报告生成
走进Java接口测试之TestNg自定报告简单学习
背景 Testng报告是否可以自定义,后面通过查找资料便有了如下自定义报告,testng中提供很多接口,如果需要改造成自己报告只要实现他们的接口即可,以下是根据自己想法实现如下自定义testng报告,
高楼Zee
2019/10/22
9080
3 分钟生成一个单元测试报告,这个样式爱了
昨天有个小伙伴问我,有没有什么现成的测试报告模板,由于昨天实在比较忙就没顾上,所以今个有时间赶紧补上。一般力所能及的事,只要我有时间都会为大家解决,但毕竟能力有限做不到的地方小伙伴们也多理解。
程序员小富
2020/08/20
1.2K0
3 分钟生成一个单元测试报告,这个样式爱了
TestNG的用例执行失败重试机制
流年Felix
2023/08/19
7940
Java自动化测试框架-08 - TestNG之并行性和超时篇 (详细教程)
可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中。这个属性可以带有如下这样的值:
北京-宏哥
2019/11/10
2.5K0
Java自动化测试框架-10 - TestNG之测试结果篇
测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释)。
北京-宏哥
2019/11/12
1.5K0
Java自动化测试框架-10 - TestNG之测试结果篇
接口自动化落地(一:MySQL+MyBatis实现对测试用例数据的读取)
本篇文章讲解TestNG+MySQL+MyBatis+ExtentReports实现对测试用例数据的读取,下面放出所有配置文件的目录方便下文理解。
软件测试君
2019/06/03
2.1K0
《手把手教你》系列基础篇(八十二)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-上篇(详解教程)
  其实前边好像简单的提到过测试报告,宏哥觉得这部分比较重要,就着重讲解和介绍一下。报告是任何测试执行中最重要的部分,因为它可以帮助用户了解测试执行的结果、失败点和失败原因。另一方面,日志记录对于密切关注执行流程或在出现任何故障时进行调试很重要。默认情况下,TestNG 会为其测试执行生成不同类型的报告。这包括一个 HTML 和一个 XML 报告输出。TestNG 还允许其用户编写自己的报告程序并将其与 TestNG 一起使用。还有一个选项可以编写自己的记录器,TestNG 在运行时会通知这些记录器。
北京-宏哥
2022/04/27
1K0
《手把手教你》系列基础篇(八十二)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-上篇(详解教程)
SeleniumWebDriver如何自动化可视化验证图表和绘图(如折线图,饼图,柱状图)
前言:图表(Chart)的自动验证是测试自动化的最大挑战之一, 而在我们的应用程序中,我们有大量的图表,接下来将展示我是如何自动化Chart,或许给你一些新的想法。
软测小生
2019/10/10
1.7K0
SeleniumWebDriver如何自动化可视化验证图表和绘图(如折线图,饼图,柱状图)
Appium系列|Appium测试框架完善(二)
TestNG提供了很多好用的监听器,假设我们想监听测试脚本执行过程的各个阶段,TestNG就提供了这样的一个监听器,我们只需要去实现监听器接口,然后重写各个测试阶段的方法即可,这样就可以在测试执行的各个阶段去做我们想做的事情了。TestNG提供的接口是ITestListener,这时候可以新建一个包如listeners,然后新建一个类如TestListener,让该类实现
测试邦
2019/07/24
9230
推荐阅读
相关推荐
《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验