自动化测试报表统一平台 ReportPortal 集成 TestNG
本文主要介绍 ReportPortal 如何集成 TestNG 测试框架,用到的工具链有:ReportPortal + TestNG + log4j。ReportPortal 集成 TestNG 的主要原理是通过给 TestNG 配置 ReportPortal 的 listener,在测试开始时该监听器将测试信息实时上报给 ReportPortal 平台。另外我们通过给 log4j 配置 ReportPortal appender,将测试过程中代码日志也上报到 ReportPortal 平台。然后 ReportPortal 将收到的数据进行整合、分析,形成平台数据统一展示。
ReportPortal 简介
ReportPortal 是一个统一的自动化测试报告收集、分析、可视化平台,可以集成多种测试框架,比如 TestNG、Selenium 等等。ReportPortal 的主要特性有:
- 能轻易和多种测试框架集成;
- 实时展示测试情况;
- 所有的自动化测试结果在一个地方统一查看;
- 保留历史测试信息;
- 能和 bug 跟踪系统集成,比如 Jira;
ReportPortal 解决了什么问题
个人认为 ReportPortal 最大的价值在于报表的统一收集、查看、分析。假如没有 ReportPortal 工具,我们可能需要自己写脚本,或者 Jenkins 插件针对不同的测试框架装不同的插件,然后展示测试报告,但是 Jenkins 收集的测试报告只能在 Jenkins 平台查看。微服务拆分细、导致 Jenkins job 数量比较多,要看每次测试的报告要逐个点开进去查看,没有一个全局的地方查看。另外 Jenkins 本身的插件生态提供的测试报告收集不支持对历史测试报告的统一查询,如果有这种需求,基本不能满足。
ReportPortal 基本是全测试框架支持的统一报表收集、分析、可视化平台,能轻松解决上存在的痛点。
ReportPortal 在 CI/CD 中扮演了什么角色
CI/CD 我们已经很熟悉了,但是如何将 CI/CD 与 CT 无缝整合,也许 ReportPortal 在 CI/CD 与 CT 的整合中扮演了重要角色。DevOps 的关键在于自动化统一标准、流程,根据 ReportPortal 的特性及本人的试用,发现 ReportPortal 真是对 CI/CD 完美的补充,整个交付流水线更加统一、规范、简洁、无缝衔接。
ReportPortal + TestNG + log4j 集成详细步骤
以一个基于 TestNG 测试框架的 java 工程为例说明,配置前 java 工程目录结构:
.
├── pom.xml
├── README.md
├── run.sh
└── src
├── main
│ ├── java
│ │ └── com
│ └── resources
│ ├── config.properties
│ ├── dev.yml
│ ├── log4j.properties
│ ├── log4testng.properties
│ ├── production.yml
│ ├── stage.yml
│ ├── test.yml
│ └── web.yml
└── test
├── java
│ └── com
└── resources
└── testng.xml
1. 配置工程 pom 文件
1.1 配置 ReportPortal 相关依赖远程仓库
<repositories>
<repository>
<id>bintray</id>
<url>http://dl.bintray.com/epam/reportportal</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
1.2 添加一些依赖配置
testng 依赖