开源jmeter压测工具
Apache JMeter 是一个由 Apache Software Foundation 开源的性能测试工具,主要用于:
- Web 应用性能测试(HTTP/HTTPS)
- 接口/API 测试(REST / SOAP)
- 数据库性能测试(JDBC)
- 消息系统(MQ、Kafka 等)
- 分布式压测
其核心定位: 协议层压测工具(Protocol-level Load Testing Tool)
核心特点
| 特性 | 说明 |
|---|---|
| 开源免费 | 无 license 成本 |
| 多协议支持 | HTTP、FTP、JDBC、MQ 等 |
| 可扩展性强 | 支持插件、二次开发 |
| GUI + CLI | 支持图形化和无界面压测 |
| 分布式压测 | 支持 master-slave 模式 |
1.JMeter核心架构模型
1.1测试执行模型
JMeter 本质是一个 线程驱动模型:
flowchart LR
A[Thread Group] --> B[Sampler 请求]
B --> C[PreProcessor 预处理]
C --> D[请求发送]
D --> E[PostProcessor 后处理]
E --> F[Assertion 断言]
F --> G[Listener 监听器]
1.2核心组件说明
| 组件 | 作用 |
|---|---|
| Thread Group | 定义并发用户(线程数、循环次数) |
| Sampler | 发送请求(HTTP Request) |
| Controller | 控制执行逻辑(if/loop) |
| Listener | 结果收集(图表/日志) |
| Config Element | 配置参数(HTTP Header、Cookie) |
| Assertion | 校验响应(状态码/内容) |
| Timer | 控制请求间隔(模拟真实用户) |
2.安装与环境准备
2.1依赖
- JDK 8+(必须)
- 下载 JMeter 二进制包
2.2启动方式
1 | # GUI模式 |
3.入门实战:HTTP接口压测
3.1创建测试计划
基本结构:
flowchart TD
A[Test Plan]
A --> B[Thread Group]
B --> C[HTTP Request]
B --> D[View Results Tree]
3.2关键配置步骤
Step1:线程组(Thread Group)
| 参数 | 示例 |
|---|---|
| Number of Threads | 100(并发用户数) |
| Ramp-Up Period | 10秒(启动时间) |
| Loop Count | 10(循环次数) |
含义:10秒内启动100用户,每个用户执行10次请求
Step2:HTTP Request
| 参数 | 示例 |
|---|---|
| Method | GET / POST |
| Server Name | example.com |
| Path | /api/test |
Step3:监听器(Listener)
常用:
- View Results Tree(调试用)
- Summary Report(汇总)
- Aggregate Report(核心指标)
4.性能指标解析(重点)
4.1核心指标
| 指标 | 含义 |
|---|---|
| TPS(Throughput) | 每秒处理请求数 |
| RT(Response Time) | 响应时间 |
| QPS | 每秒请求数 |
| Error % | 错误率 |
| Latency | 首字节时间 |
- 吞吐量 ≠ 并发数
- RT = 网络 + 服务端处理 + IO
- 高 TPS 不一定代表系统健康