每次上线前最怕的不是测不完,而是不知道该不该放行:功能用例跑过了、压测数字看着还行、接口返回也正常,但真出事往往就出在没人定过准入线。这篇按功能、接口、性能三类测试,各给一份「必须过」的判据和一张放行前清单,让你在评审会上能直接照着说。
上线前最怕的不是测不完,而是不知道该不该放行。功能用例跑过了、压测数字看着还行、接口返回也正常,但真出事往往就出在没人提前定过准入线。放行那一刻是拍脑袋还是照单子勾,事后差别很大。
这篇按功能、接口、性能三类测试,各给一份「必须过」的判据和一张放行前清单,让你在评审会上能直接照着说。数字类的东西一律不写死,需要对比就去站内对应页面核对当时的口径。
先定义「准入线」:三类测试各管什么,别互相替代
三类测试不是可以互相顶替的。接口全绿不代表用户点得通,压测跑得欢不代表契约没被悄悄改坏。先把各自管什么说清楚,后面判放行才不会互相甩锅。
- 功能测试
- 管「对不对」:核心路径、边界输入、异常分支是否都有明确结果,接口和性能都替代不了它
- 接口测试
- 管「契约稳不稳」:状态码、字段结构、错误码语义、鉴权失败路径是否与文档一致,重点在回归而不是覆盖数量
- 性能测试
- 管「扛不扛得住」:峰值并发、可接受延迟和错误率上限要先写下来,没定目标的压测等于白跑
三类测试的通过标准要写进同一张发布检查表,避免出现「功能过了但没人看性能报告」这种漏项。谁签哪一栏提前定好,评审时逐条念。
功能准入:哪些必须过,哪些可以带伤上线
功能准入最容易扯皮,因为「bug 不大」是个主观判断。解决办法是把阻断级和可放行级提前分类,分类之后再讨论具体某条缺陷归哪一类。
| 级别 | 典型情形 | 处理方式 |
|---|---|---|
| 阻断 | 主流程走不通、数据写错或删错、权限绕过、计费口径错误 | 一律不放行,改完重测 |
| 可放行 | 非核心路径展示问题、文案与样式瑕疵、有兜底提示的次要异常 | 登记影响面与回滚说明,指定人签字 |
| 待定 | 说不清影响范围的缺陷 | 按阻断处理,先查清再降级 |
- 回归范围按改动影响面圈定:动了公共组件跑全量核心用例,只改文案可只跑冒烟
- 每种「可放行」都要有人签字确认影响面,不能靠口头说问题不大
- 缺陷登记要写清触发条件和兜底表现,方便发布后对照观测
- 回滚方案在放行前就要写好,不要等出事再现场想
接口准入:契约、错误路径与兼容性怎么判
接口测试的常见误区是只测成功返回。真正会炸的往往在鉴权失败、参数缺失、超限和超时这些路径上,尤其是中途换过网关或鉴权中间件的版本。
- 列放行清单成功响应结构、鉴权失败、参数缺失、超限返回、超时返回五类场景各留一条实测记录
- 核对错误码语义状态码和错误码含义是否与文档一致,别出现文档说客户端错误、实际返回服务端错误
- 看字段兼容性新增字段是否可选、删改字段有没有下游依赖,重命名类改动一律按破坏性变更处理
- 实测鉴权与限流不只看文档,换过网关或代理配置的改动,接口测试要整轮重跑
- 验长连接行为流式或长连接接口单独验一遍中断与超时表现,不能只测短请求
接口契约的判定标准可以参考站内的资料库页面,把当时记录的字段约定和鉴权要求拉出来对照,避免只凭记忆判断。
性能准入:用你自己定的阈值判,不用别人的数字
性能准入的前提是先有自己的基线和阈值。公开榜单只能当参考,不能当放行依据,因为业务模型、数据量级和调用链完全不同。
接口延迟和吞吐的基线可以到 接口测速:先量出你的延迟基线(/tools/speed-test) 实测一轮,把结果记进检查表。有了自己的数字,判断就变成对照而不是猜测。
| 业务类型 | 主要看什么 | 不适用的情况 |
|---|---|---|
| 面向用户的同步接口 | 高百分位尾部延迟、错误率 | 内部批处理或离线任务 |
| 批处理与后台任务 | 总时长、失败重试量 | 实时交互类接口 |
| 高并发写入场景 | 写入成功率和排队时长 | 读多写少的查询接口 |
- 压测要在接近生产的配置下跑,小规格测试机的结论不能作为放行依据
- 性能不达标先分清是容量不够还是代码有问题,盲目加机器会掩盖慢查询和串行调用
- 数据量级要与生产接近,用空库压出来的漂亮数字没有参考价值
- 性能报告要有结论和责任人,不能只丢一堆图表进群
放行前最后一遍:清单、责任人与回滚条件
走到这一步,前面三类的结论应该已经能勾选。最后一遍不是重新测,而是确认每条判定都有状态和负责人,没有人默认通过。
| 测试类型 | 判定项 | 状态与负责人 |
|---|---|---|
| 功能 | 阻断级缺陷为零,可放行项已登记 | |
| 接口 | 五类场景均有实测记录,兼容性已确认 | |
| 性能 | 达到自定阈值,压测环境接近生产 | |
| 发布 | 回滚条件与观测动作已写死 |
回滚条件要提前定:错误率、延迟、核心功能失败率超过哪条线就回滚,而不是等出事再开会讨论。发布后头一段时间看日志、错误码分布和接口耗时是否与测试期一致。
把这次的口径和踩坑记下来放进站内指南里,下次直接复用,不用重新吵一遍标准。中转站相关的接口口径和可信度信息可以顺手到 站内中转站目录(/sites) 核对,避免拿旧信息判断。
下一步把你这次的三类判据整理成一页检查表,下次评审直接照着念,省掉现场争论的时间。→常见问题
三类测试都要全过才能发吗?
不一定,但要有明确取舍规则。常见做法是功能测试的阻断项必须全过,接口测试的破坏性变更必须过,性能测试在主链路达标、非核心路径可带条件放行。关键不是全过,而是每条豁免都写清楚谁批的、影响面多大、出问题怎么回滚。
性能测试的通过标准是不是越高越好?
不是。标准要贴着业务来:面向用户的接口卡尾部延迟,后台批处理看总耗时和失败重试。标准定太高会拖慢发布节奏,定太低又拦不住问题。建议先用真实流量或测速工具量出基线,再在基线上留一段安全余量,具体数字到站内页面按当时的情况核对。
接口测试通过就能说明功能没问题吗?
不能。接口测试主要覆盖契约和错误路径,业务规则、状态流转、多步操作组合这些还是靠功能测试。反过来功能测试也替代不了接口测试的回归价值。两边是互补关系,发布检查表里应当分别列条目,而不是用一个的结论替代另一个。