【微服务学习笔记】使用JMeter进行压力测试
·
目录
JMeter 压力测试
1.1 安装 JMeter
-
选择
Binaries→apache-jmeter-5.6.3.zip -
解压,进入
bin目录,双击jmeter.bat启动 -
【也可直接搜索运行】


1.2 创建测试计划
步骤1:添加线程组
右键点击 测试计划 → 添加 → 线程(用户) → 线程组

配置:
| 参数 | 值 | 说明 |
|---|---|---|
| 线程数 | 50 | 并发用户数 |
| Ramp-up 时间 | 5 | 5秒内启动全部线程 |
| 循环次数 | 10 | 每个用户执行10次 |

步骤2:添加 HTTP 请求(登录获取 token)
右键点击 线程组 → 添加 → 取样器 → HTTP 请求

登录请求配置:
| 参数 | 值 |
|---|---|
| 协议 | http |
| 服务器名称 | localhost |
| 端口 | 8080 |
| 方法 | POST |
| 路径 | /api/user/login |
| 身体数据 | {"username":"testuser","password":"123456"} |

步骤3:提取 token(使用 JSON 提取器)
右键点击登录请求 → 添加 → 后置处理器 → JSON 提取器

配置:
| 参数 | 值 |
|---|---|
| Names of created variables | token |
| JSON Path expressions | $.data.token |

步骤4:添加笔记列表请求(需要携带 token)
右键点击 线程组 → 添加 → 取样器 → HTTP 请求

笔记列表请求配置:
| 参数 | 值 |
|---|---|
| 协议 | http |
| 服务器名称 | localhost |
| 端口 | 8080 |
| 方法 | GET |
| 路径 | /api/note/list?pageNum=1&pageSize=10 |

添加 HTTP 头管理器:右键点击这个请求 → 添加 → 配置元件 → HTTP (信息)头管理器

名称: Authorization 值: Bearer ${token} #动态获取token,需要先添加一个登录获取token的HTTP请求
也可使用事先获取的token,直接将Bearer ${token}替换为真实值!

步骤5:添加聚合报告
右键点击 线程组 → 添加 → 监听器 → 聚合报告

1.3 执行压测
-
确保所有服务已启动
-
点击绿色的启动按钮
-
等待测试完成
-
查看聚合报告


可以看到,结果虽然快但全报错,我们需要新建结果树,重新运行查看具体错误:
这里报错码集中于401、415

明确问题:

解决415报错:


解决401报错:

预期指标(满足评分标准):
| 指标 | 目标值 |
|---|---|
| 平均响应时间 | < 500ms |
| 吞吐量 | > 100/s |
| 错误率 | < 1% |
| 95% 响应时间 (P95) | < 1s |

若过程中,发现聚合报告中出现残留旧请求数据,影响结果。点击上方“清除”后重新运行,即可解决!

1.4 压力测试(增加并发)
创建第二个线程组,配置:
| 参数 | 值 |
|---|---|
| 线程数 | 200 |
| Ramp-up 时间 | 10 |
| 循环次数 | 5 |
把相同的两个请求(登录请求 + 笔记请求)复制进去,然后降低并发数或者修改参数来模拟不同的负载场景。


观察系统的瓶颈和熔断是否触发。
更多推荐
所有评论(0)