以下是使用 JMeter 进行电商系统购物车多场景负载测试的详细步骤和脚本说明。测试场景比例设置为:添加商品(30%)、浏览商品(50%)、结算操作(20%)。
1. 测试目标
模拟真实用户行为,验证购物车在高并发场景下的性能表现:
- 添加商品(30%)
- 浏览商品(50%)
- 结算操作(20%)
2. JMeter 脚本设计
脚本结构
测试计划 │ ├─ 线程组(模拟并发用户) │ │ │ ├─ HTTP请求默认值(配置域名、端口等) │ │ │ ├─ CSV数据文件(参数化商品ID、用户凭证) │ │ │ ├─ 吞吐量控制器(添加商品 - 30%) │ │ └─ HTTP请求:添加商品接口 │ │ │ ├─ 吞吐量控制器(浏览商品 - 50%) │ │ └─ HTTP请求:浏览商品接口 │ │ │ ├─ 吞吐量控制器(结算操作 - 20%) │ │ └─ HTTP请求:结算接口 │ │ │ └─ 查看结果树 & 聚合报告(结果监听器)关键配置步骤
(1) 线程组配置
- 线程数(用户数):100
- Ramp-Up 时间:60秒(逐步增加并发)
- 循环次数:Forever(持续运行至手动停止)
多场景负载测试配置
(2) 吞吐量控制器配置
通过Throughput Controller控制操作比例:
- 添加商品(30%):
- 模式:Percent
- 值:30
- 浏览商品(50%):
- 模式:Percent
- 值:50
- 结算操作(20%):
- 模式:Percent
- 值:20
(3) HTTP请求示例
添加商品接口
名称:添加商品 方法:POST 路径:/cart/add 参数: product_id=${product_id} // 从CSV读取 quantity=1浏览商品接口
名称:浏览商品 方法:GET 路径:/cart/list结算接口
名称:结算 方法:POST 路径:/cart/checkout 参数: payment_method=credit_card(4) 参数化设置
使用CSV Data Set Config动态读取数据:
- 文件名:
product_ids.csv - 变量名:
product_id - 文件内容示例:
product_id 1001 1002 1003
3. 执行测试
- 启动 JMeter,加载脚本
- 配置监听器(聚合报告、响应时间图)
- 点击运行按钮(▶️)开始测试
4. 结果分析
- 聚合报告:关注
TPS、错误率、平均响应时间 - 响应时间图:观察响应时间是否稳定
- 服务器资源监控:配合
Grafana+Prometheus监控 CPU/内存
5. 注意事项
- 动态会话:添加
HTTP Cookie管理器保持用户会话 - 思考时间:在操作间添加
固定定时器(如 2秒)模拟用户停顿 - 断言:对接口返回结果添加
JSON断言验证业务逻辑正确性
通过以上配置,即可模拟真实用户操作比例下的购物车负载场景