跳到主要内容

性能测试指标

单轮测试可产出的全部数据及其读法。术语定义见基本概念

客户无需提前定义指标——下列数据均自动产出,不需选择或配置。 需客户确认的仅第四节所列三项。

表中的英文名为报告中的字段名,与中文含义一一对应。

一、客户端指标

客户端指压测机一侧,即从用户视角测量的端到端耗时。

同一轮测试同时产出三个层级的数据,无需为不同粒度分别执行:

层级回答的问题典型用途
接口级链路中哪一个请求耗时最长定位问题
链路级完整操作的端到端耗时对外承诺与验收口径
全局整轮的总体水平结论陈述

1. 接口级

粒度最细的一层,链路中每个请求单独统计,用于定位耗时集中在哪一步。

字段含义
business_duration单次请求耗时
business_error_rate该接口的失败率
server_time服务端处理耗时(取自响应头)
response_body_size响应体大小
endpoint_bytes_received / endpoint_bytes_sent该接口的收发字节数
分离网络开销

server_time 与客户端总耗时相减,即可把网络与排队开销从服务端处理时间里分离出来。 客户抱怨"慢"时,这一步能立刻区分是服务端慢还是链路慢。

2. 链路级

将完整用户操作作为整体计时,对应用户实际感知的等待时间。 该层最贴近用户体验,是对外承诺的推荐口径。 链路内任一步失败,整条记为失败。

字段含义
workflow_duration完整链路耗时
workflow_error_rate链路失败率

3. 全局

压测工具(k6)的原生指标,通用性最好,适合写入对外的验收结论。

字段含义
http_req_duration全部请求的耗时分布
http_req_failed整体失败率
http_reqs请求总数
iterations完成的完整操作次数
vus并发虚拟用户数
data_sent / data_received收发数据总量
checks断言通过情况

4. 每项指标的统计列

含义常见用途
count样本数判断这项数据够不够有统计意义
avg / med平均值 / 中位数看整体水平,中位数不受长尾影响
p90 / p95 / p99分位耗时验收口径通常写这里,p95 最常用
min / max最快 / 最慢max 用来发现偶发的极端卡顿
err%失败率与耗时并列的第二条硬指标
tps每秒完成数吞吐量口径
srvP95服务端处理 p95剔除网络后的纯服务端耗时
recvKB / sentKB单次收发字节定位"响应体过大"型的慢

分位取值与 JMeter 聚合报告保持一致(min / 中位 / 90 / 95 / 99 / max),便于和历史报告对比。

验收口径不得使用平均值

平均值受长尾影响被拉平。100 个请求中 95 个为 100 ms、5 个为 10 s 时, 平均值仅 595 ms,掩盖了后 5 个请求的严重劣化。验收应使用 p95 / p99。

二、服务端资源指标

压测同时在被测环境采集 CPU 与内存,与客户端数据落在同一时间轴上, 用于回答「响应劣化时服务端处于何种状态」。

有这层数据,结论才能从「响应慢」推进到「某服务 CPU 达到上限,需扩容」, 后者才具备可执行性。

采集内容说明
CPU 使用量可换算为相对配额的占比
内存使用量同上
统计维度节点 / 命名空间 / 服务 / 实例 / 容器,按业务名归类而非实例编号
采样间隔默认 10 秒,可调(下限 2 秒)
多副本聚合取最大值,不取平均

单副本打满、其余空闲时,取平均将显示为低负载,掩盖真实瓶颈。

前提:被测服务运行于 K8s(k3s)

物理机或虚拟机部署需另行配置采集方式。 集群监控的开启方式见开启监控

三、判定与验收

红线(阈值)用于判定单轮测试是否通过,可设在四个层级:

层级判定对象示例
接口单个请求的耗时与失败率p95 小于 2000 ms
链路完整操作的端到端耗时p95 小于 5000 ms
全局整轮的失败率与耗时整体失败率低于 1%
服务端CPU / 内存水位CPU 占用不超过配额的 80%

每一层均可单独切换为「仅观察」模式。

首轮应全部设为「仅观察」

红线需在客户实际环境中标定后才具备判定意义。未经标定即用于验收, 首轮通常大面积越线,导致报告失去可信度。

正确顺序:首轮测出实际水位 → 依据实测数据与客户商定 → 启用判定模式。 仅观察模式下越线情况照常写入报告,仅不影响成败结论。

易误读的口径

红线「business_duration{workflow:打开需求列表} 的 p95 小于 600 ms」的含义是:

该链路内的单个请求,95% 快于 600 ms

而非:

整条链路 95% 在 600 ms 内完成

因为 business_duration 的样本单位是单个请求, 附加链路名仅将统计范围限定到该链路所含的请求。

该差异影响重大:一条 30 步的链路,每步耗时 500 ms 均可通过此红线, 但端到端耗时已达 15 秒。

对外承诺使用链路级指标

表述「用户完成一次操作的等待时间」须使用 workflow_duration,不得使用 business_duration

分阶段统计

单轮压测分为升压、稳态、降压三个阶段(见基本概念), 报告对各阶段分别统计耗时、失败率与服务端水位。

验收数据取自稳态阶段。 升压阶段负载较低、耗时数据偏优, 混合统计会使整体结果偏乐观。阶段之间的间隔也会单独检查, 避免各阶段均正常而间隔期存在故障的情况被掩盖。

已知限制:红线覆盖整轮而非稳态窗口

当前红线的判定范围为整轮测试,含升压与降压阶段,因此判定偏松: 升压阶段的低耗时会拉低整轮 p95,可能出现整轮红线通过而稳态阶段实际不达标的情况。

读取报告时须以分阶段统计中的稳态行为准。

四、需要客户明确的三件事

前述指标均自动产出。以下三项只能由客户方确定。

1. 目标业务量 —— 峰值并发用户数,或目标吞吐量。

该值决定压测强度。缺少它则测得的数据没有参照系: 「50 并发下 p95 为 800 ms」只有在客户实际业务量即为 50 并发时才具备意义。

客户常给出的是注册用户总数,需换算,方法见并发公式

2. 验收口径与阈值 —— 需卡指标的链路、使用 p95 或 p99、具体数值。

先测定基线,再商定阈值

客户验收项常写为「响应时间阈值为 ___」,容易被填入无法达成的数值。 应先测出实际水位,再依据实测数据与客户商定。顺序颠倒将导致该项无法推进。

3. 数据规模 —— 测试环境需写入的工作项、页面、成员数量。

该量级应对齐客户当前的真实规模,或其未来一到两年的预期规模。 可生成的量级见工具执行手册