压测与脚本执行
这页聚焦压测链路、本地脚本执行入口、云端分布式执行和结果收束。
先判断是不是这页的范围
- 你要在本机直接执行一轮平台标准脚本或本地自由脚本:看这里
- 你要启动云端分布式压测任务并轮询状态、结果或取消任务:看这里
- 你要区分“本地脚本执行”和“云端托管压测”这两条链路:看这里
- 你只是想确认协议字段、提取和断言结构:优先回到 接口实战
怎么读这页
- 先看“边界”,判断当前场景该走本地脚本执行还是云端托管
- 再看“本地执行”或“云端压测”小节,只读自己需要的那一条
- 最后看“结果与产物”,确认回传结果、报告文件和后续动作
一句话理解:
- 本地执行适合快速验证、单机回放、近端调试和自由脚本运行
- 云端压测适合多 worker 扩容、异步任务管理和共享执行环境
边界
- 本地执行:由当前端侧直接执行脚本,分成两类
- 平台标准脚本:由服务端或工具链下发,适合接口探测、快速断言、协议化响应采集和小规模压力执行
- 本地自由脚本:由用户提供本地现成脚本文件,按透传方式执行,适合完全自定义的 JS/k6 逻辑
- 云端压测:由服务端托管并调度分布式 worker 执行,适合规模化并发、异步状态追踪和统一结果管理
- 本地与云端是两条不同链路,不要把“云端任务已启动”当成本地待执行动作
- 如果任务只是“在当前机器立即跑起来”,归到本地执行
- 如果任务需要“启动异步任务、稍后查状态、拉结果或取消”,归到云端压测
本地执行
本地执行分成两条入口:
- 平台标准脚本:直接提供脚本文本,由本地执行器跑服务端下发的标准模板
- 本地自由脚本:提供本地已有脚本文件,由执行器按透传方式运行
适合的场景:
- 对单个接口做快速探测或小规模压力验证
- 在本机复现响应时间、失败率或阈值问题
- 调试脚本内容、请求参数和通过条件
- 使用平台标准脚本时,按规则采集响应摘要或响应结果文件
- 生成本地汇总文件并沉淀到报告目录
不适合的场景:
- 需要多台 worker 横向扩容
- 需要任务级状态管理、轮询和取消
- 需要把执行环境统一收敛到服务端
最小意图示例:
对 http://127.0.0.1:8000/mock/load 做一轮本地执行,
5 个虚拟用户,持续 30 秒,
要求响应状态码为 200。
如果是平台标准脚本场景,也可以强调要采集响应:
执行一轮服务端下发的标准脚本,
开启响应采集,
并把摘要和结果文件一起带回。
如果是已有脚本文件,也可以直接描述:
执行本地已有的脚本文件,
并覆盖并发和持续时间。
云端压测
云端压测适合异步任务模型,常见动作只有四类:
- 启动任务
- 查询状态
- 查询结果
- 取消任务
适合的场景:
- 需要分布式 worker 执行
- 需要跨环境、跨项目统一管理压测任务
- 需要先启动,再在后续回合查询状态和结果
常见输入来源:
- 启动一个已有的云端压测任务
- 提交一份脚本文本后由服务端创建新任务
- 提交一份结构化压测规格后由服务端先编译,再创建新任务
最小意图示例:
启动一轮云端分布式压测,
目标是 keepalive 接口,
2 个虚拟用户,持续 3 秒,
要求响应状态码为 200。
如果任务已经启动,后续动作应该改成:
查询刚才那轮云端压测的状态。
或:
拉取那轮云端压测的归一化结果。
不要把“任务已启动”再次描述成待执行的本地动作。
通过条件与阈值
压测里最常见的通过条件分成两类:
- 功能通过条件:例如响应状态码、响应体关键字段、事件是否出现
- 性能阈值:例如失败率、P95、P99、吞吐或超时上限
建议写法:
- 先写功能通过条件,再写性能阈值
- 优先写最终是否通过的业务条件,不要只写底层技术细节
- 如果目标只是快速连通性验证,功能通过条件通常已经足够
- 如果目标是回归或放量验证,必须补上性能阈值
示意:
要求响应状态码为 200,
失败率低于 1%,
P95 小于 200ms。
结果与产物
本地执行通常会返回:
- 本次执行是否成功
- 退出码
- 控制台摘要
- 可选的汇总 JSON 文件
- 若使用平台标准脚本,还可能带回响应摘要或响应结果文件
云端压测通常会返回:
- 任务标识
- 当前状态
- 下一步建议动作
- 最终归一化结果或取消结果
如果你需要长期回看或自动归档,优先保留汇总文件或任务结果,而不是只看终端文本。
什么时候选哪条链路
- 需要立刻验证、立刻看结果:选本地执行
- 需要大规模并发、异步调度、统一管理:选云端压测
- 需要先写脚本再快速跑:选本地执行
- 需要跨 worker 扩容和任务生命周期管理:选云端压测