• extentreports报告插件与testng集成


    前段时间在群里有人说了下用这个插件来生成测试报告,发现生成的报告非常不错。就下来学习了一下,并集成到了testng上,下面来分享一下:

    ExtentReports (by Anshoo Arora) is a HTML reporting library for .NET and Java which is extremely easy to use and creates beautiful execution reports. It shows test and step summary, test steps and status in a toggle view for quick analysis。(ExtentReports是一个可以非常容易用.net或者java来生成的一个漂亮的报告,用来显示我们的测试中步骤、摘要、状态以便用来分析)

    先让大家看下报告样式:

    是不是很漂亮,其中的还有帅选功能。以及其他的一些信息。

    我的工程是maven项目,所以可以直接引入依赖,不能引入的,请自行下载,下载地址:http://extentreports.relevantcodes.com

    maven工程中pom.xml加入一下依赖

            <dependency>
                <groupId>com.relevantcodes</groupId>
                <artifactId>extentreports</artifactId>
                <version>2.40.2</version>
            </dependency>

    首先在testng @beforesuits中初始化一些ExtentReports,其中配置了报告的生成路径,以及一些其他一些信息,这里为了在监听中调用extent 我在这里写了一个get方法

    复制代码
    private static String reportLocation = "report/ExtentReport.html";
    protected static ExtentReports extent;
    @BeforeSuite
        public static void befores(){
    extent = new ExtentReports(reportLocation, true);
    extent.startReporter(ReporterType.DB, reportLocation);
    extent.addSystemInfo("Host Name", "Lining");
    }
    
    @AfterSuite
    public static void afters(){
            
        extent.close();
    
    }
    public static ExtentReports getextent(){
            return extent;
        }
    复制代码

    重写testng监听:

    复制代码
    import org.apache.log4j.Logger;
    import org.testng.ITestContext;
    import org.testng.ITestResult;
    import org.testng.TestListenerAdapter;
    import seleniumstudy.testcase.InitDriverCase;
    import com.relevantcodes.extentreports.ExtentReports;
    import com.relevantcodes.extentreports.ExtentTest;
    import com.relevantcodes.extentreports.LogStatus;
    
    public class TestngListener extends TestListenerAdapter {
        private Logger logger = Logger.getLogger(TestngListener.class);
        protected ExtentReports extent;
        protected ExtentTest test;
    
        @Override
        public void onTestStart(ITestResult tr) {
            super.onTestStart(tr);
            logger.info("【" + tr.getName() + " Start】");
            extent=InitDriverCase.getextent();
            test= extent.startTest(tr.getName());
        }
    
        @Override
        public void onTestFailure(ITestResult tr) {
            super.onTestFailure(tr);
            logger.info("【" + tr.getName() + " Failure】");
            test.log(LogStatus.FAIL, tr.getThrowable());
            extent.endTest(test);
            
        }
        
    
        @Override
        public void onTestSkipped(ITestResult tr) {
            super.onTestSkipped(tr);
            logger.info("【" + tr.getName() + " Skipped】");
            test.log(LogStatus.SKIP, "SKIP");
            extent.endTest(test);
        }
    
        @Override
        public void onTestSuccess(ITestResult tr) {
            super.onTestSuccess(tr);
            logger.info("【" + tr.getName() + " Success】");
            test.log(LogStatus.PASS, "Pass");
            extent.endTest(test);
        }
    
        @Override
        public void onFinish(ITestContext testContext) {
            super.onFinish(testContext);
        }
    }
    复制代码

    ok,已经完毕,我们的测试用例,还按以前的testng方式书写就可以了,testng 的失败重跑以及失败自动截图在下一篇文章中实现。

    extentreports 官方文档地址:http://extentreports.relevantcodes.com/java/#reviews

    转自:https://www.cnblogs.com/llining/p/5479139.html

  • 相关阅读:
    8.5 day8
    8.1 day6
    课后作业 day29
    博客整理day29
    博客整理day28
    博客整理day27
    博客整理day26
    课后作业 day26
    Python 学习day22
    课后作业 day21
  • 原文地址:https://www.cnblogs.com/kaola8023/p/8125030.html
Copyright © 2020-2023  润新知