压测脚本设计是什么
压测脚本设计是把真实业务流量翻译成可重复执行脚本的过程,核心五件事:参数化(账号、查询键按分布取值)、关联(从响应提取令牌、订单号供后续请求使用)、事务边界(把一组请求记为一次业务动作)、幂等与数据清理、脚本与真实行为的差异登记。脚本能重复跑,结果才配被引用。
基本信息
| 设计要素 | 参数化、关联、事务边界、幂等与清理 |
|---|---|
| 数据准备 | 按业务分布造数据,运行前统一准备 |
| 复跑校验 | 两次运行结果量级一致再对外引用 |
| 差异登记 | 脚本与真实用户行为的差异写入说明 |
| 交付物 | 脚本、造数与清理脚本、运行说明、差异清单 |
| 常见工具 | k6、JMeter、Locust,术语略有差异 |
设计清单
设计清单
1) 参数化:不同用户/键值按分布取值,避免写死账号串行使用
2) 关联:登录令牌、订单号从响应中提取,传给后续请求
3) 事务:把一组请求记为一次业务动作,统计才有业务含义
4) 数据:运行前造数、运行后清理,保证脚本可重复
5) 差异:脚本与真实行为的偏差逐条登记,随版本更新
6) 校验:两次运行量级一致后,再对外引用结果典型使用场景
- 新链路验证:先写小脚本跑通业务链路与数据准备流程。
- 发版回归压测:复用脚本对比前后版本的分位与吞吐。
- 容量评估:按真实分布参数化,为阶梯加压提供输入。
- 缺陷复现:按生产流量模型复现问题,验证修复效果。
- CI 冒烟:取最简链路进流水线,拦住明显性能退化。
- 交接维护:差异登记与运行说明让脚本可被他人接手复用。
脚本要素与检查点
| 要素 | 检查点 | 常见问题 |
|---|---|---|
| 参数化 | 取值有分布、无写死账号 | 所有用户串行使用同一账号 |
| 关联 | 动态值从响应实时提取 | 令牌过期后请求批量失败 |
| 事务 | 边界与业务动作一致 | 统计口径比真实业务更碎 |
| 数据 | 运行前造数、运行后清理 | 数据耗尽或残留污染下游 |
| 幂等 | 重跑不累积副作用 | 重跑后数据冲突用例失败 |
| 差异登记 | 偏差清单随脚本版本更新 | 结论被过度外推到真实行为 |
脚本要能重复运行:随机种子、数据准备与幂等策略都需设计,否则结果不可复现。
关联失效(令牌过期、字段改名)是脚本维护的大头,脚本本身也要定期回归。
不清理数据的压测会产生大量测试数据,可能拖垮存储并污染下游统计。