JMeter 简介

Apache JMeter 是由 Apache 软件基金会开发和维护的 开源性能测试工具,主要用于对 Web 应用、API、消息系统等各种服务进行压力测试和性能评估。它以轻量、可扩展、插件丰富而著称,是目前最常用的性能测试工具之一,适用于个人开发者、测试工程师、运维工程师和企业级团队。


1. JMeter 是什么?

JMeter 最初由 Stefano Mazzocchi 在 1998 年设计,用于对 Web 站点进行负载测试。经过多年发展,它已经成为一个 全面的性能测试平台,不仅支持 HTTP/HTTPS,还支持:

  • WebSocket

  • FTP / SFTP

  • JDBC(数据库)

  • MQTT

  • JMS

  • TCP

  • LDAP

  • SOAP / REST

  • 以及大量第三方插件扩展的协议

JMeter 的核心能力是模拟大量虚拟用户,在短时间内向目标系统发起请求,从而观察系统在压力下的响应时间、吞吐量、错误率、资源消耗等指标。


2. JMeter 的主要特点

✔ 100% 开源免费

不需要商业授权,所有功能可自由使用,源码可二次开发。

Apache JMeter - Download Apache JMeter

https://pan.baidu.com/s/1iNIUjeA5HY30O8XwuIIFxg?pwd=h34n 提取码: h34n

✔ 支持丰富协议

不仅是常见的 Web 和 API 测试工具,几乎所有主流协议都能覆盖。

✔ 易扩展 + 插件生态强大

可通过:

进行深度改造。

✔ 图形化界面 + 命令行模式

  • GUI 适合脚本编写与调试

  • CLI 适合大规模压测、DevOps 自动化

    适用于 CI/CD、Kubernetes、Jenkins、GitHub Actions 等。

✔ 跨平台

基于 Java,可在 Windows、Linux、macOS、Docker 中运行。

✔ 分布式压力测试

通过 Remote、Master-Slave、Kubernetes Operator 等方式实现大规模集群压测。


3. JMeter 能做什么?

(1)性能测试

  • 压力测试(Stress Test)

  • 负载测试(Load Test)

  • 容量测试(Capacity Test)

  • 稳定性测试(Soak Test)

  • 基准测试(Benchmark Test)

(2)功能测试

虽然不是主要用途,但可以通过 HTTP、JSONPath、JSR223 等实现 API 级别功能测试。

(3)自动化测试

配合 Jenkins、GitLab CI 可实现定时压测任务和性能基线监测。


4. JMeter 的核心组成结构

JMeter 的脚本实际上是由一系列组件组合而成的测试树(Test Plan),主要包括:

测试计划(Test Plan)

整个压测的顶层配置。

线程组(Thread Group)

定义虚拟用户数、启动速度、循环次数等,是压测脚本的"发动机"。

采样器(Sampler)

每次请求就是一个采样器,例如:

  • HTTP Sampler

  • JDBC Sampler

  • TCP Sampler

  • WebSocket Sampler

  • MQTT Sampler

    ...

配置元件(Config Element)

配置请求参数、变量、连接池等,例如:

HTTP Request Defaults、CSV Data Set Config。

逻辑控制器(Logic Controller)

如循环、条件判断、事务控制等。

定时器(Timer)

模拟用户思考时间/等待时间。

前置、后置处理器(Processor)

用于提取参数、处理响应、动态构造请求。

断言(Assertion)

判断结果是否成功,如响应码、JSON 字段等。

监听器(Listener)

负责结果展示,如聚合报告、响应时间图表等。


5. JMeter 适用场景

  • Web 服务压力测试

  • APP 后端 API 性能测试

  • 微服务架构的链路压测

  • 接口性能对比(优化前 vs 优化后)

  • 数据库读写性能分析

  • MQTT / JMS / WebSocket 等消息系统压测

  • CI/CD 中发布前自动性能基线校验


6. JMeter 的优势与局限

✔ 优势

  • 免费、开源、社区强大

  • 强扩展性,接口覆盖全面

  • 脚本容易上手

  • 与 DevOps 容易集成

  • 支持无 GUI 方式运行(资源占用低)

❗ 局限

  • GUI 模式较吃内存

  • 不适合 UI 层测试

  • 大规模压测需要分布式或 Kubernetes 支持

  • 图表没有商业工具(LoadRunner / NeoLoad)那么专业


7. JMeter 在企业中的典型使用模式

  1. 本地编写脚本(GUI)

  2. 命令行 + Jenkins 自动化执行

  3. 生成 HTML 报告 / Grafana 监控

  4. 将结果记录到性能基线数据库(InfluxDB/Prometheus)

  5. 定期比较性能趋势

企业也常搭配以下生态工具:

  • JMeter + Grafana + InfluxDB

  • JMeter + Prometheus + Loki

  • JMeter + Kubernetes Operator

相关推荐
少云清12 小时前
【性能测试】9_JMeter _JMeter录制脚本(了解)
jmeter·性能测试
少云清17 小时前
【性能测试】8_JMeter _JMeter跨线程组关联
jmeter·性能测试
Wpa.wk1 天前
性能测试 - 搭建线上的性能测试环境参考逻辑图
java·经验分享·测试工具·jmeter·性能测试
少云清1 天前
【性能测试】6_JMeter_JMeter断言
jmeter·性能测试
@汤圆酱1 天前
Jmeter如何实现接口关联?
测试工具·jmeter
网易测试开发猿1 天前
吐血整理,性能测试-负载、并发/压力测试分析+常遇问题解决
软件测试·软件测试工程师·jmeter·压力测试·性能测试·负载测试·jmeter性能测试
少云清2 天前
【性能测试】5_JMeter _JMeter参数化
jmeter·性能测试
石头wang3 天前
jmeter java.lang.OutOfMemoryError: Java heap space 修改内存大小,指定自己的JDK
java·开发语言·jmeter
少云清4 天前
【性能测试】2_JMeter _JMeter文件目录
jmeter·性能测试