流程与授权70 条

API 测试授权与限速

API 测试确认授权范围(端点、账号、频次限制),约定限速与熔断线,避免批量调用影响服务。

API 测试为什么要单独限速

接口是业务系统的承压点:一次批量调用可能同时消耗数据库连接、缓存带宽与下游服务配额。接口类测试天然倾向于脚本化与批量执行,如果不设限速与熔断线,很容易造成响应变慢、错误率上升甚至服务不可用。因此 API 测试的授权里必须写明并发、频次与单次批量上限,并约定触发熔断后的处理方式。

基本信息

授权范围端点清单与测试账号权限
限速约定并发数、每秒请求数、单次批量条数
熔断条件错误率上升或响应时间明显变长即暂停
窗口约束避开业务高峰,必要时约定测试时段
记录要求留存请求日志,便于区分测试流量与真实故障

典型使用场景

  • 对象级授权检查:需要多账号交叉请求,必须限制并发
  • 参数枚举类测试:字典遍历容易产生大量请求
  • 批量导出与报表接口:单次调用资源消耗大
  • 文件上传与转换接口:会占用后端处理队列
  • 第三方回调与异步任务:需核对触发频率与重试机制

测试约定示例

测试约定示例
# 并发:不超过 3,单线程顺序请求优先
# 频次:不超过 5 请求/秒,复杂查询之间加 1 秒间隔
# 单次批量:不超过 20 条记录,禁止全量拉取
# 熔断:连续 3 次 5xx 或响应时间超过基线 3 倍即停止
# 上报:触发熔断立即通知对接人并记录时间点

限速参数读法

参数含义设定依据
并发数同时进行的请求数量按账号配额与后端连接池容量留余量
频次单位时间请求总数按业务日常峰值的一定比例设定
单次批量一次请求处理的数据条数按接口分页上限与数据库压力
熔断阈值停止测试的触发条件以错误率与响应时间为准,提前约定
限速线要写进授权与规则文件,而不是凭测试人员现场判断;超出约定即降速或暂停并同步客户。
免登录接口同样受限速约束:未认证的批量请求更容易被边缘设备判定为攻击流量。

易错点

  • 脚本无间隔循环调用,打满应用连接池导致业务不可用
  • 用生产账号做批量拉取,采集了大量真实业务数据
  • 触发 5xx 后继续重试,把小故障放大为服务中断
  • 未保留请求日志,故障发生后无法区分测试流量与真实业务请求

数据来源与参考

  • 通用 API 安全测试实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌