走进Java接口测试之服务端测试报告Klov ExtentReports

引言

走进Java接口测试之测试报告ExtentReport中我们已经知道 ExtentReport 可以为接口测试提供了出色的可视化报告。而 Klov 是Extent Framework 的新的报表服务器。Klov 提供了对最新版本的详细分析,能够利用历史数据分析接口测试的执行情况。

本文并没有详细介绍 TestNG 和其他配置,详细配置请参照上文。

ps:在 ExtentReports 4.0版本中 extentx 已被废弃。

功能简介

官方已经在 Heroku上使用模拟数据创建了一个demo。

注意:demo上的某些功能已禁用,以防止数据被修改。

地址:http://klov.herokuapp.com/

目前可以使用以下功能:

  • Login
  • Project
  • Dashboard
  • Build list
  • Build
  • Error States
  • Test
  • Tag Overview (pro版)
  • Tag (pro版)
  • Device (pro版)
  • Environment
  • User Settings
  • User new
  • User manage
  • Search

可以在时间线图表中查看历史视图中的失败, 可以看到执行这些测试及其构建执行信息的时间等。

然后,可以检查哪些测试失败最多。

最后,可以使用条形图跟踪状态。

安装配置

安装 MongoDB

安装是一个简单的过程。对于MongoDB的Windows安装,可以参考以下:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/

安装 Redis

安装Redis,此处省略(如果不打算使用Redis,请跳过,请参阅 “使用没有 Redis 的设置” 一节)

运行 Klov

下载地址:http://extentreports.com/community/

有2个文件对您很重要:

  • klov-xx.jar
  • application.properties

启动 Klov

java -jar klov-x.x.x.jar

MongoDB 设置

可以从application.properties以下位置配置 MongoDB 环境设置:

# data.mongodb
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=klov

Redis 设置

可以从application.properties以下位置配置 Redis 服务器设置:

# redis, session
spring.session.store-type=redis
server.session.timeout=-1
spring.redis.host=localhost
spring.redis.port=6379

使用没有 Redis 的设置

要在没有 Redis 的情况下使用 Klov,只需在 application.properties 以下位置取消注释:

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.session.SessionAutoConfiguration

Email 设置

您可以从中配置电子邮件设置 application.properties。需要这些设置才能重置忘记的密码。

spring.mail.host=
spring.mail.port=
spring.mail.username=
spring.mail.password=
spring.mail.properties.mail.smtp.ssl.enable=true
#spring.mail.properties.mail.smtp.starttls.enable=true
#spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.auth=true
#spring.mail.properties.mail.smtp.connectiontimeout=5000
#spring.mail.properties.mail.smtp.timeout=5000
#spring.mail.properties.mail.smtp.writetimeout=5000
spring.mail.test-connection=true

打开Klov

转到 http://localhost:portNo,看到欢迎页面。

默认使用以下超级用户凭据:

  • user: klovadmin
  • pass: password

测试使用

引包

引入pom.xml

<dependency>
            <groupId>com.aventstack</groupId>
            <artifactId>extentreports</artifactId>
            <version>4.0.6</version>
</dependency>

添加 Listener

首先,没有必要更改测试代码。需要做的就是在项目中添加一个 Listener,接上文代码修改 MyExtentTestNgFormatter 类

主要步骤:

  • 创建一个 KlovReporter 对象。
  • 定义 MongoDB 连接
  • 为我们的测试项目提供项目名称
  • 将构建号定义为报告名称。
  • 设置 klov 服务器 URL
  • 最后,创建一个 ExtentReports 对象并将其绑定到 KlovReport 对象。

通过这样做,Klov 将创建一个具有给定名称的项目。如果存在,Klov 将使用先前创建的项目并将结果存储到其中。

public MyExtentTestNgFormatter() {
        setInstance(this);
        testRunnerOutput = new ArrayList<>();
        // reportPath 报告路径
        String reportPathStr = System.getProperty("reportPath");
        File reportPath;

        try {
            reportPath = new File(reportPathStr);
        } catch (NullPointerException e) {
            reportPath = new File(TestNG.DEFAULT_OUTPUTDIR);
        }

        if (!reportPath.exists()) {
            if (!reportPath.mkdirs()) {
                throw new RuntimeException("Failed to create output run directory");
            }
        }
        //  报告名report.html
        File reportFile = new File(reportPath, "report.html");
        //  邮件报告名emailable-report.html
        File emailReportFile = new File(reportPath, "emailable-report.html");

        //  创建一个KlovReporter对象
        ExtentKlovReporter klov = new ExtentKlovReporter();
        //  定义MongoDB连接
        klov.initMongoDbConnection("localhost", 27017);
        //  设置klov服务器URL
        klov.initKlovServerConnection("http://localhost");
        //  为我们的测试项目提供项目名称
        klov.setProjectName("zuozewei-test");
        klov.setReportName("1.0");

        htmlReporter = new ExtentHtmlReporter(reportFile);
        EmailReporter emailReporter = new EmailReporter(emailReportFile);
        reporter = new ExtentReports();

    //  如果cdn.rawgit.com访问不了,可以设置为:ResourceCDN.EXTENTREPORTS或者ResourceCDN.GITHUB
    //   htmlReporter.config().setResourceCDN(ResourceCDN.EXTENTREPORTS);

        // 绑定 Reporters
        reporter.attachReporter(htmlReporter, emailReporter,klov);
    }

注意:

ExtentReports4.0setResourceCDN的方法已失效

运行测试

现在运行测试,看看结果

本文分享自微信公众号 - 7DGroup(Zee_7DGroup)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏达达前端

Java面试集合(一)

1.Java按应用范围可划分几个版本? 答:Java按应用范围有三个版本,分别是JavaSE,JavaEE,JavaME。

9430
来自专栏达达前端

第二节:Java入门第一行代码

学习Java基础课程,学会使用eclipse,eclipse为Java集成开发坏境IDE,创建第一个Java源文件代码:

11920
来自专栏石头岛

springboot中的@ConfigurationProperties注解的使用

将配置文件中的配置,以属性的形式自动注入到 实体中。 要特别说明的一个注属性 ignoreUnknownFields = false 这个超好用,自动检查配置文...

1.9K30
来自专栏达达前端

第一节:学会Java前提-手把手教你配置JDK环境变量

大家好,我是 Vic,今天给大家带来学会Java前提-手把手教你配置JDK环境变量的概述,希望你们喜欢

11650
来自专栏达达前端

Java面试集合(二)

4.简单说说String类和StringBuffer类之间的区别? 答:String类是不可变的类,字符串一旦被初始化就不可能改变;StringBuffer是...

9930
来自专栏达达前端

第三节:带你详解Java的操作符,控制流程以及数组

大家好,我是 Vic,今天给大家带来带你详解Java的操作符,控制流程以及数组的概述,希望你们喜欢

6820
来自专栏达达前端

第五节:详细讲解Java中的接口与继承

大家好,我是 Vic,今天给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢

9540
来自专栏达达前端

第四节:详细讲解Java中的类和面向对象思想

大家好,我是 Vic,今天给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢

11150
来自专栏达达前端

第六节:详细讲解Java中的装箱与拆箱及其字符串

大家好,我是 Vic,今天给大家带来详细讲解Java中的装箱与拆箱及其字符串的概述,希望你们喜欢

14030
来自专栏达达前端

Java面试集合(三)

1.在Java中是否可以含有多个类? 答:可以含有多个类,但只有一个是public类,public类的类名与文件名必须一致。

8850

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励