Husky WMS 压力测试方案使用指南
🚀 快速开始
1. 准备工作
环境要求
- JDK 1.8+
- MySQL 8.0+
- Python 3.8+
- JMeter 5.4+
目录结构
husky-wms/ ├── pressure_test_data_preparation.sql # 数据库测试数据脚本 ├── pressure_test_data_generator.py # Python数据生成器 ├── jmeter_pressure_test.jmx # JMeter压测脚本 ├── pressure_test_data.csv # 测试数据文件 ├── pressure_test_config.md # 环境配置文档 ├── pressure_test_analysis.py # 结果分析工具 ├── README_pressure_test.md # 使用指南(本文件) └── pressure_test.sh # 一键启动脚本
2. 一键启动
# 1. 运行数据库脚本
mysql -u root -p"root" -h localhost -P 3307 husky_wms_db < pressure_test_data_preparation.sql
# 2. 生成测试数据
python3 pressure_test_data_generator.py
# 3. 运行压力测试
./pressure_test.sh 50 10 300 100
# 参数说明:
# 第一个参数:并发用户数(默认50)
# 第二个参数:启动时间(默认10秒)
# 第三个参数:测试时长(默认300秒)
# 第四个参数:循环次数(默认100次)
3. 结果分析
# 分析测试结果
python3 pressure_test_analysis.py pressure_test_results.jtl
# 生成图表报告
python3 pressure_test_analysis.py pressure_test_results.jtl -o ./report
📊 测试场景
场景1:任务管理压力测试
- 并发用户数:50
- 测试时长:5分钟
- 测试内容:任务创建、AGV反馈、任务完成
- 预期目标:
- 平均响应时间 < 1秒
- 95%响应时间 < 3秒
- 成功率 > 99%
- QPS > 100
场景2:AGV调度压力测试
- 并发用户数:20
- 测试时长:5分钟
- 测试内容:物料智能调度、路径规划
- 预期目标:
- 平均响应时间 < 2秒
- 95%响应时间 < 5秒
- 成功率 > 99%
- QPS > 50
场景3:数据统计压力测试
- 并发用户数:30
- 测试时长:5分钟
- 测试内容:任务状态统计、AGV状态统计
- 预期目标:
- 平均响应时间 < 1秒
- 95%响应时间 < 2秒
- 成功率 > 99%
- QPS > 100
🔧 自定义配置
1. 数据库配置
修改 pressure_test_data_preparation.sql 中的连接信息:
-- 修改数据库连接信息
SET @host = 'localhost';
SET @port = 3307;
SET @user = 'root';
SET @password = 'root';
SET @database = 'husky_wms_db';
2. JMeter配置
修改 jmeter_pressure_test.jmx 中的参数:
<!-- 修改并发用户数 -->
<stringProp name="ThreadGroup.num_threads">50</stringProp>
<!-- 修改服务器地址 -->
<stringProp name="HTTPSampler.domain">localhost</stringProp>
<stringProp name="HTTPSampler.port">8080</stringProp>
3. Python配置
修改 pressure_test_data_generator.py 中的数据库配置:
db_config = {
'host': 'localhost',
'port': 3307,
'user': 'root',
'password': 'root',
'database': 'husky_wms_db'
}
📈 性能指标
1. 关键指标
- 响应时间:用户请求到收到响应的时间
- QPS:每秒处理的请求数
- 成功率:成功请求占总请求的比例
- 并发用户数:同时在线的用户数
- CPU使用率:服务器CPU的使用情况
- 内存使用率:服务器内存的使用情况
2. 性能基准
| 场景 | 平均响应时间 | 95%响应时间 | QPS | 成功率 |
|---|---|---|---|---|
| 任务管理 | < 1秒 | < 3秒 | > 100 | > 99% |
| AGV调度 | < 2秒 | < 5秒 | > 50 | > 99% |
| 数据统计 | < 1秒 | < 2秒 | > 100 | > 99% |
3. 性能瓶颈识别
- 数据库瓶颈:查询缓慢、连接池耗尽
- 应用瓶颈:CPU使用率高、内存溢出
- 网络瓶颈:延迟高、带宽不足
- JVM瓶颈:GC频繁、内存泄漏
🐛 常见问题
1. 数据库连接失败
# 检查数据库连接
mysql -u root -p"root" -h localhost -P 3307 -e "SELECT 1"
# 检查连接池配置
curl http://localhost:8080/druid/stat
2. JMeter启动失败
# 检查Java环境
java -version
# 检查JMeter版本
jmeter --version
# 增加JMeter内存
export JVM_ARGS="-Xms4g -Xmx4g"
3. 应用启动失败
# 检查应用日志
tail -f logs/application.log
# 检查端口占用
netstat -an | grep 8080
# 检查JVM状态
jstat -gc <pid> 1s
4. 内存溢出
# 查看内存使用情况
free -h
# 查看JVM堆内存
jmap -heap <pid>
# 生成堆转储文件
jmap -dump:format=b,file=heapdump.hprof <pid>
📋 测试清单
1. 测试前检查
- 数据库服务正常
- 应用服务正常
- 测试数据已准备
- 监控服务已启动
- 网络连接正常
2. 测试中监控
- CPU使用率监控
- 内存使用率监控
- 网络流量监控
- 数据库性能监控
- 应用日志监控
3. 测试后分析
- 生成测试报告
- 分析性能指标
- 识别性能瓶颈
- 提供优化建议
- 清理测试数据
🎯 优化建议
1. 数据库优化
- 添加合适的索引
- 优化SQL查询
- 调整连接池参数
- 使用缓存策略
2. 应用优化
- JVM参数调优
- 线程池优化
- 异步处理
- 负载均衡
3. 架构优化
- 微服务化
- 读写分离
- 分库分表
- 分布式缓存
📞 技术支持
如有问题,请联系:
- 邮件:@husky-wms.com"">support@husky-wms.com
- 电话:400-123-4567
- 文档:https://docs.husky-wms.com
📝 更新日志
v1.0 (2025-11-04)
- 初始版本发布
- 支持基础压力测试功能
- 提供完整的测试环境配置
注意:本压力测试方案为Husky WMS系统专用,请勿用于其他系统!
作者:聂盼盼 创建时间:2025-11-04 15:11
最后编辑:聂盼盼 更新时间:2025-11-05 15:18
最后编辑:聂盼盼 更新时间:2025-11-05 15:18