大数跨境

extentreports报告插件与testng集成(一)

extentreports报告插件与testng集成(一) 慧测
2016-05-16
0
导读:慧测官网全面升级:www.huicewang.com本文是慧测学员原创作品前段时间在群里有人说了下用这个插件


慧测官网全面升级:www.huicewang.com


前段时间在群里有人说了下用这个插件来生成测试报告,发现生成的报告非常不错。就下来学习了一下,并集成到了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");
}

@AfterSuitepublic 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

版权声明:本文是慧测学员原创作品,转载请注明来源及出处,否则按侵权处理。

欢迎加入我们:
中国软件测试群: 172923163  

测试编程技术交流群: 231767115  

性能测试技术交流群: 385202672

咨询QQ:2657535456

公众号:慧测


【声明】内容源于网络
0
0
慧测
专注人工智能前沿技术落地企业实战应用
内容 404
粉丝 0
慧测 专注人工智能前沿技术落地企业实战应用
总阅读104
粉丝0
内容404