zoukankan      html  css  js  c++  java
  • 使用testNGListenter来自定义日志

    背景

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

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

    操作步骤

    直接show the code:

    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
    ");
        }
    
        @Override
        public void onTestSkipped(ITestResult tr) {
            log(String.format("[method: %s]",tr.getName())+ "--Test method skipped
    ");
        }
    
        @Override
        public void onTestSuccess(ITestResult tr) {
            log(String.format("[method: %s]",tr.getName())+ "--Test method success
    ");
        }
    
        @Override
        public void onTestStart(ITestResult tr) {
            log(String.format("[method: %s]",tr.getName())+ "-- START");
        }
    
        private void log(String string) {
            logger.info(string);
        }
    }

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

    void onTestFailure(ITestResult result) // 用例执行结果失败
    void onTestSkipped(ITestResult result) // 跳过该条用例
    void onTestSuccess(ITestResult result) // 用例执行结果成功
    void onTestStart(ITestResult tr) // 用例开始执行的时候

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

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

    @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文件中添加,如下:

    <?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 效果展示:

  • 相关阅读:
    ubuntu下erlang man的安装
    ranch分析学习(四)
    ranch分析学习(三)
    ranch分析学习(二)
    ranch分析学习(一)
    IIS 配置错误解决方法集合
    Visual Studio 2013中添加mimeType
    wordpress 开发日志及技巧收集
    css3 动画
    高宽比例计算方法及等比高宽修改计算方法
  • 原文地址:https://www.cnblogs.com/jwentest/p/8253672.html
Copyright © 2011-2022 走看看