1. 概述
本教程将探讨 JMeter 仪表板报告的生成方法。JMeter 是一款流行的 Java 编写的测试工具,常用于负载、性能和压力测试。除了生成丰富的统计数据外,JMeter 还能以直观的可视化格式展示测试结果,这是其核心功能之一。JMeter 不仅支持生成多种格式的文本报告,还能生成仪表板报告。
2. 前置条件
我们需要一个集成了 JMeter Maven 插件的 Spring Boot 应用。这里准备了一个包含三个接口的 Spring Boot MVC 示例应用:
- 返回问候消息的接口
- 返回每日名言的接口
- 返回服务器时间的接口
这些接口足够我们运行 JMeter 测试并生成仪表板报告。
3. 运行 JMeter 测试
现在我们来看如何针对应用接口运行 JMeter 测试。
3.1 创建 JMeter 测试计划
使用 JMeter GUI 创建测试计划
通过 JMeter GUI 创建名为 ReportsDashboardExample.jmx 的测试计划:
${project.basedir}/src/main/resources/dashboard/ReportsDashboardExample.jmx
✅ 测试计划可保存为文件,也可加载现有计划进行修改 ✅ 本示例使用极简测试计划,满足演示需求即可
执行 ReportsDashboardExample.jmx 会生成测试结果文件 ReportsDashboardExample.csv。后续将基于该 CSV 文件生成仪表板报告。
3.2 配置 JMeter Maven 插件
插件配置至关重要:
<configuration>
<testFilesDirectory>${project.basedir}/src/main/resources/dashboard</testFilesDirectory>
<resultsDirectory>${project.basedir}/src/main/resources/dashboard</resultsDirectory>
<generateReports>true</generateReports>
<ignoreResultFailures>true</ignoreResultFailures>
<testResultsTimestamp>false</testResultsTimestamp>
</configuration>
关键配置说明:
generateReports: true
→ 启用仪表板报告生成- 默认输出目录为
target/jmeter
(可自定义覆盖)
3.3 生成仪表板报告
创建了名为 dashboard 的 Maven 专用配置文件
通过设置环境变量激活该配置:
...
<profile>
<id>dashboard</id>
<activation>
<property>
<name>env</name>
<value>dash</value>
</property>
</activation>
...
执行命令:
mvn clean install -Denv=dash
⚠️ 使用独立配置文件的优势:
- 隔离特定依赖/插件配置
- 避免污染全局设置
- 保持
pom.xml
清晰结构
3.4 查看仪表板报告
测试运行日志会输出报告路径:
[INFO] Will generate HTML report in [PATH_TO_REPORT]
打开路径下的 index.html 即可查看仪表板:
仪表板特性:
- 为三个接口分别生成统计图表
- 饼图全绿表示所有测试通过
- 可通过模拟错误接口(如指向不存在路径的 HTTP 请求)生成红色区域,模拟真实场景
4. Maven 目标配置
目标是在测试环境中启动示例应用,使 JMeter 能访问本地接口。下面详解 pom.xml
配置:
4.1 Spring Boot Maven 插件
使用 start/stop
目标以守护进程方式运行应用:
<execution>
<id>launch-web-app</id>
<goals>
<goal>start</goal>
</goals>
<configuration>
<mainClass>com.baeldung.dashboard.DashboardApplication</mainClass>
</configuration>
</execution>
对应的停止目标:
<execution>
<id>stop-web-app</id>
<goals>
<goal>stop</goal>
</goals>
</execution>
4.2 JMeter Maven 插件
将 JMeter 插件目标包裹在 Spring Boot 的 start/stop
之间,确保测试期间应用持续运行:
...
<execution>
<id>jmeter-tests</id>
<goals>
<goal>jmeter</goal>
<goal>results</goal>
</goals>
</execution>
...
⚠️ 踩坑提醒:若发生错误,停止目标可能失效导致应用进程残留。此时需手动终止:
- 查找 Spring Boot 进程 ID
- 通过命令行或 Bash 执行
kill
命令
5. 总结
本文介绍了 JMeter 仪表板报告的生成方法。可视化报告相比纯文本数据,分析效率显著提升。
关键要点:
- ✅ 不仅适用于 Web 接口测试,还支持 RESTful 服务、数据库、消息队列等场景
- ✅ 可通过断言(assertion)定义通过/失败标准
- ✅ GUI 模式适合计划设计,生产环境应使用非 GUI 模式(资源消耗更低)
- ✅ 大规模测试可采用分布式集群方案
示例源码已托管至 GitHub