5.1 测试策略设计


5.1 测试策略设计

本节摘要:压测前先想清楚测什么、为什么测、怎么测。本节讲测试目标、场景选择、负载模型——策略对了压测才有意义。

核心问题

阅读完本节,你应当能够:

  1. 定清晰的性能目标
  2. 选对测试场景
  3. 设计负载模型

概念脉络

一、定性能目标

压测不是"加压看看",要有明确目标。目标来自业务 SLA:

  • 响应时间:99% 请求 < 200ms
  • 吞吐量:支撑 1000 QPS
  • 错误率:< 0.1%
  • 并发用户数:支撑 5000 在线

目标要可量化、可验证。模糊目标如"快点"测不出结论。

二、选测试场景

不是所有接口都压,选关键场景:

  • 核心链路:登录、下单、支付等高频高价值路径
  • 高频接口:调用量最大的接口
  • 资源密集:消耗 CPU/内存/DB 重的接口
  • 历史问题:出过性能问题的接口

图 5-1 测试策略设计

图 5-1 测试策略设计

三、负载模型

模型 方法 测什么
恒定负载 固定并发跑一段时间 稳态性能
递增负载 并发逐步加 找拐点/容量
峰值负载 短时高负载 大促峰值
稳定性 长时间跑 内存/连接泄漏

递增负载找拐点最常用——加压到响应突增或错误突升,拐点就是系统容量。

四、测试计划要素

  • 测试目标(量化指标)
  • 测试场景(哪些接口/链路)
  • 负载模型(并发数、持续时间、递增策略)
  • 数据准备(参数化数据、测试账号)
  • 环境配置(压测机、被测环境、监控)
  • 通过标准(什么算达标)

⚠️ 常见坑:没目标就压测——加压看 TPS 曲线,不知道多少算达标。先定量化目标(如 99% < 200ms),再测。

💡 关键直觉:策略定方向——量化目标、选关键场景、定负载模型。递增负载找拐点最常用,拐点就是系统容量。

要点速记

  • 目标:量化可验证(RT/TPS/错误率/并发数),来自业务 SLA。
  • 场景:核心链路、高频接口、资源密集、历史问题。
  • 负载模型:恒定(稳态)、递增(找拐点)、峰值(大促)、稳定性(泄漏)。
  • 计划要素:目标/场景/负载/数据/环境/通过标准。
  • 先定目标再测,别"加压看看"。

下一节讲脚本规范——怎么写出可维护的压测脚本。

测试类型

性能测试按目的分为:基准测试(单接口摸底,确定基线指标)、负载测试(逐步加压观察性能曲线)、压力测试(超限加压找系统崩溃点)、稳定性测试(长时间运行找慢性问题)、并发测试(固定并发观察表现)。不同测试类型对应不同的线程模型与运行时长。

策略设计流程

  1. 明确目标(响应时间、吞吐量、错误率红线)
  2. 分析业务模型(核心接口、流量比例、高峰期)
  3. 设计场景(线程数、时长、数据量)
  4. 准备环境与数据(独立压测环境、测试数据)
  5. 执行与监控(压测同时监控系统指标)
  6. 结果评估与报告(对比基线、给出结论)

设计要点表

要素 建议 理由
线程数 从低到高阶梯式 找拐点
数据量 覆盖真实规模 避免命中缓存偏差
时长 负载测试 15-30 分钟 观察稳定性
监控 CPU/内存/连接数 关联分析

测试设计文档模板

一份完整的性能测试设计文档应包含:测试背景与目标(量化指标);被测系统拓扑与版本;测试场景矩阵(接口、并发、时长、数据);通过准则(响应时间、吞吐、错误率红线);环境与数据准备清单;风险与回滚预案。以文档驱动执行,能保证压测可复现、结果可追溯、结论可审计。

场景设计示例

以秒杀场景为例:预热阶段(小并发预热缓存)→ 峰值阶段(瞬时 5000 并发冲击)→ 回落阶段(持续 2000 并发 10 分钟)→ 恢复观察(低并发确认系统恢复)。这种阶梯场景设计比单一固定并发更能暴露系统在流量突变下的问题(缓存击穿、限流触发、连接池重建)。

命令行示例

基准测试:单接口 1 线程 1 次,测基线 负载测试:阶梯加压 50→100→200→400 压力测试:超过预估容量 50%,找崩溃点 稳定性测试:额定并发 4 小时以上 并发测试:固定并发(如 1000)观察表现

策略选择逻辑

先跑基准确认工具链路正常,再做负载测试找容量拐点,压力测试验证极限保护,稳定性测试覆盖长期运行,最后用并发测试补充特定场景。不同类型解决不同问题,组合使用才能全面评估。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U