LiteMall性能测试——JMeter压测全流程——大三项目实战记录(四)
LiteMall性能测试——JMeter压测全流程——大三项目实战记录(四)
项目背景
性能测试课程作业:对开源商城系统LiteMall进行压力测试,评估系统在不同并发量下的性能表现,给出优化建议。
测试环境
| 项目 | 配置 |
|---|---|
| 被测系统 | LiteMall(Spring Boot + Vue) |
| 操作系统 | CentOS 虚拟机 |
| 压测工具 | Apache JMeter 5.6.3 |
| 监控工具 | ServerAgent(端口4444) |
| 监控指标 | CPU、内存、网络IO、磁盘IO |
测试场景设计
场景1:首页浏览(基准测试)
- 并发用户:10/50/100/200
- 目的:获取系统基础吞吐量
场景2:商品搜索
- 并发用户:50/100
- 搜索关键词:随机从商品库抽取
场景3:用户登录+下单(混合场景)
- 比例:80%浏览 + 15%搜索 + 5%下单
- 并发:100/200/500
场景4:极限测试
- 逐步加压,找到系统吞吐量拐点
JMeter脚本结构
测试计划
├── 线程组(并发用户配置)
│ ├── HTTP请求默认值
│ ├── HTTP Cookie管理器
│ ├── CSV数据配置(测试账号/商品ID)
│ ├── HTTP请求 - 首页
│ ├── HTTP请求 - 搜索
│ ├── HTTP请求 - 登录
│ └── HTTP请求 - 下单
├── 监听器 - 聚合报告
├── 监听器 - 查看结果树
└── 监听器 - 响应时间图
关键发现
| 并发数 | 平均响应时间 | TPS | 错误率 | CPU使用率 |
|---|---|---|---|---|
| 10 | 120ms | 83 | 0% | 15% |
| 50 | 380ms | 131 | 0% | 45% |
| 100 | 890ms | 112 | 0.2% | 78% |
| 200 | 2100ms | 95 | 2.5% | 95% |
| 500 | 超时 | - | 15% | 100% |
- 性能拐点:约120并发时响应时间开始陡增
- CPU瓶颈:200并发时CPU打满,数据库连接池耗尽
- 建议:加Redis缓存热点商品、数据库连接池调优、静态资源上CDN
ServerAgent监控配置
在CentOS上启动ServerAgent:
java -jar CMDRunner.jar --tool PerfMonAgent --udp-port 4444 --tcp-port 4444
JMeter端添加PerfMon监听器,实时采集CPU/Memory/Network指标。
小结
JMeter上手不难,难的是设计合理的测试场景和正确解读数据。压测不是把并发数拉满就完事,要关注响应时间分布(P99/P95)、错误类型(超时还是业务错误)、资源瓶颈(CPU/内存/IO哪个先满)。
大三博客系列,持续更新中...

浙公网安备 33010602011771号