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 的测试计划:

JMeter GUI

${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 即可查看仪表板:

JMeter 仪表板报告

仪表板特性:

  • 为三个接口分别生成统计图表
  • 饼图全绿表示所有测试通过
  • 可通过模拟错误接口(如指向不存在路径的 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>
...

⚠️ 踩坑提醒:若发生错误,停止目标可能失效导致应用进程残留。此时需手动终止:

  1. 查找 Spring Boot 进程 ID
  2. 通过命令行或 Bash 执行 kill 命令

5. 总结

本文介绍了 JMeter 仪表板报告的生成方法。可视化报告相比纯文本数据,分析效率显著提升。

关键要点:

  • ✅ 不仅适用于 Web 接口测试,还支持 RESTful 服务、数据库、消息队列等场景
  • ✅ 可通过断言(assertion)定义通过/失败标准
  • ✅ GUI 模式适合计划设计,生产环境应使用非 GUI 模式(资源消耗更低)
  • ✅ 大规模测试可采用分布式集群方案

示例源码已托管至 GitHub


原始标题:How Do I Generate a Dashboard Report in JMeter?