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

相关推荐
玖釉-2 小时前
JMeter 安装与环境配置
jmeter
CesareCheung3 小时前
用python写一个websocket接口,并用jmeter压测websocket接口
python·websocket·jmeter
大霞上仙1 天前
jmeter 之dubbo sample 调用例子
jmeter·dubbo
qq_4924484463 天前
JMeter→DSL 结构化方案
jmeter
程序员杰哥3 天前
Jmeter压测实战:Jmeter二次开发之自定义函数
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试
一只会奔跑的小橙子3 天前
一次营销试算接口压测(jmeter+groovy)
jmeter
张永清-老清4 天前
每周读书与学习->JMeter性能测试脚本编写实战(二)- 前一个请求返回的结果作为后一个请求的入参
学习·jmeter·性能优化·性能测试·性能调优·jmeter性能测试·每周读书与学习
想要成为祖国的花朵4 天前
基于多设计模式的抽奖系统__测试报告
java·selenium·测试工具·jmeter·设计模式·测试用例·安全性测试
程序员威子4 天前
最强平替Postman的工具,拒绝浏览器套壳
功能测试·selenium·测试工具·jmeter·单元测试·测试用例·postman