接口 CDN(动态 CDN/API 网关 CDN)测试用例

一、测试目标

验证接口 CDN 的 缓存有效性、响应性能、稳定性、安全性、兼容性 五大核心能力,确保接口经 CDN 转发后,满足业务实时性、可用性及防护需求(适配 API 接口、前后端分离项目、物联网设备通信等场景)。

二、测试环境准备

环境类型配置说明
源站环境 接口服务(HTTP/HTTPS 协议)、数据库(确保动态数据可模拟变更)、接口文档(明确参数 / 响应格式)
CDN 环境 已配置接口域名(如 api.xxx.com)、缓存规则(Cache Key、过期时间)、限流 / 跨域 / CORS 配置
测试工具 接口测试:Postman、JMeter、curl;性能测试:JMeter、Locust;监控工具:Grafana、CDN 后台日志
测试终端 不同地域(国内 / 海外)、不同网络(电信 / 联通 / 移动 / 5G/Wi-Fi)、不同设备(PC / 移动端)

三、核心测试用例

(一)缓存功能测试(核心)

1. 缓存命中验证

用例 ID测试场景测试步骤预期结果 
Cache-001 通用静态接口(无动态参数)缓存命中 1. 发送请求 GET /api/config(返回公共配置数据);
 
2. 记录响应时间和 X-Cache 头;
 
3. 10 秒内重复发送相同请求
1. 第一次响应 X-Cache: MISS(回源);
 
2. 第二次响应 X-Cache: HIT(命中缓存);
 
3. 两次响应数据一致,第二次响应时间<第一次的 50%
 
Cache-002 动态参数接口缓存排除验证 1. 发送请求 GET /api/user?user_id=123(Cache Key 已排除 user_id);
 
2. 发送请求 GET /api/user?user_id=456
 
3. 查看 CDN 日志
1. 两次请求均返回 X-Cache: MISS(未缓存动态参数接口);
 
2. 响应数据分别对应不同 user_id,无数据错乱
 
Cache-003 缓存过期时间验证 1. 发送请求 GET /api/recommend(缓存过期时间设为 60 秒);
 
2. 30 秒内重复请求(验证命中);
 
3. 70 秒后再次请求
1. 30 秒内响应 X-Cache: HIT
 
2. 70 秒后响应 X-Cache: MISS(缓存过期回源)

image

 

 

fdcbadee472059111469eaf9f182f479

 

 

image

 

image

 

 

Cache-004 POST 接口缓存控制验证 1. 发送 POST /api/login(提交用户登录信息);
 
2. 查看响应 X-Cache 头和 CDN 日志
1. 响应 X-Cache: MISS(POST 接口默认不缓存);
 
2. CDN 日志无缓存记录,直接转发源站
 

 

 

 

 

 

 

2. 缓存键(Cache Key)定制验证

用例 ID测试场景测试步骤预期结果
Cache-005 排除动态参数(如 timestamp) 1. 发送请求 GET /api/data?page=1&timestamp=1699999999
 
2. 发送请求 GET /api/data?page=1&timestamp=1700000000
 
3. 查看缓存命中情况
1. 两次请求均命中缓存(X-Cache: HIT);
 
2. 响应数据一致(排除 timestamp 后 Cache Key 相同)
Cache-006 包含指定请求头(如 Accept-Language) 1. 发送请求时携带 Accept-Language: zh-CN
 
2. 发送请求时携带 Accept-Language: en-US
 
3. 查看缓存命中情况
1. 两次请求分别缓存,互不影响;
 
2. 切换语言后响应 X-Cache: MISS,返回对应语言数据

3. 缓存刷新 / 预热验证

用例 ID测试场景测试步骤预期结果
Cache-007 手动缓存刷新(单 URL) 1. 发送请求 GET /api/config 确认缓存命中(HIT);
 
2. 在 CDN 后台刷新该 URL;
 
3. 再次发送请求
1. 刷新后第一次响应 X-Cache: MISS(重新回源);
 
2. 响应数据为源站最新数据
Cache-008 缓存预热验证 1. 在 CDN 后台对 GET /api/hot 进行缓存预热;
 
2. 首次发送请求查看 X-Cache 头
1. 首次响应 X-Cache: HIT(预热成功,无需回源);
 
2. 响应时间<50ms

(二)性能测试

1. 响应时间优化验证

用例 ID测试场景测试步骤预期结果
Perf-001 跨地域响应时间对比 1. 直接访问源站接口(http://源站IP:端口/api/config),记录国内 / 海外响应时间;
 
2. 通过 CDN 访问相同接口,记录响应时间
1. 国内地域:CDN 响应时间<源站的 60%;
 
2. 海外地域:CDN 响应时间<源站的 40%(智能选路优化)
Perf-002 并发请求性能验证 1. 用 JMeter 模拟 1000 并发用户访问 GET /api/recommend(缓存 60 秒);
 
2. 持续 5 分钟,监控 CDN 回源率和响应时间
1. 缓存命中后回源率<10%;
 
2. 平均响应时间<300ms;
 
3. 无请求超时(超时率<0.1%)
Perf-003 弱网环境响应稳定性 1. 在移动端开启弱网模式(网速 100kbps);
 
2. 连续发送 10 次 GET /api/data 请求
1. 所有请求均成功响应;
 
2. 平均响应时间<2 秒;
 
3. 无数据丢失或响应错乱

2. 限流与负载均衡验证

用例 ID测试场景测试步骤预期结果
Perf-004 单 IP 限流验证 1. CDN 配置单 IP 每秒最多 50 次请求;
 
2. 用 JMeter 模拟同一 IP 每秒 100 次请求访问 GET /api/data
1. 前 50 次请求成功(响应 200);
 
2. 后 50 次请求被限流(响应 429 Too Many Requests);
 
3. CDN 日志记录限流事件
Perf-005 多源站负载均衡验证 1. CDN 配置 2 个源站(IP1:端口IP2:端口);
 
2. 模拟 500 并发请求,查看 CDN 转发日志
1. 两个源站的请求分发比例接近 1:1;
 
2. 单个源站故障时,CDN 自动切换到另一个源站,无请求失败

(三)稳定性测试

用例 ID测试场景测试步骤预期结果
Stable-001 72 小时长稳运行测试 1. 用 Locust 模拟 200 并发用户,持续访问 GET /api/health(缓存 10 秒);
 
2. 监控 CDN 节点状态、源站负载、响应成功率
1. 72 小时内响应成功率 100%;
 
2. CDN 无节点宕机、无缓存异常(如缓存穿透);
 
3. 源站 CPU / 内存占用稳定(<70%)
Stable-002 源站故障降级验证 1. 停止源站接口服务;
 
2. 发送请求 GET /api/config(CDN 配置降级响应)
1. 响应 503 Service Unavailable,但返回自定义降级信息(如 “服务临时维护,请稍后重试”);
 
2. 无空白响应或错误页面
Stable-003 网络波动场景验证 1. 模拟 CDN 与源站之间网络中断 10 秒后恢复;
 
2. 期间持续发送请求
1. 网络中断时,已缓存接口正常响应(HIT);
 
2. 未缓存接口响应 504 Gateway Timeout;
 
3. 网络恢复后,所有请求正常回源(MISS

(四)安全性测试

用例 ID测试场景测试步骤预期结果
Security-001 DDoS 攻击防护验证 1. 用工具模拟 TCP 洪水攻击 CDN 接口域名;
 
2. 同时发送正常请求 GET /api/data
1. 攻击流量被 CDN 拦截,源站无明显负载波动;
 
2. 正常请求响应正常(响应时间<500ms)
Security-002 接口参数注入攻击防护 1. 发送请求 GET /api/user?user_id=123' OR 1=1--(SQL 注入尝试);
 
2. 发送请求 POST /api/submit,请求体含 <script>alert(1)</script>(XSS 尝试)
1. CDN WAF 拦截攻击请求,响应 403 Forbidden;
 
2. 源站日志无攻击请求记录
Security-003 HTTPS 加密验证 1. 通过 CDN 访问 HTTPS://api.xxx.com
 
2. 查看证书信息和 TLS 版本
1. 证书有效(与域名匹配,未过期);
 
2. 支持 TLS 1.2/1.3 协议;
 
3. 无 HTTP 降级(HTTP 请求自动跳转 HTTPS)
Security-004 接口鉴权转发验证 1. 发送无鉴权头(如 Authorization: Token xxx)的请求;
 
2. 发送鉴权信息错误的请求;
 
3. 发送正确鉴权信息的请求
1. 无鉴权头 / 鉴权错误时,CDN 直接返回 401 Unauthorized(无需回源);
 
2. 鉴权正确时,正常转发到源站并返回数据

(五)兼容性与配置验证

1. 协议与跨域兼容性

用例 ID测试场景测试步骤预期结果
Compat-001 HTTP/3(QUIC)协议支持 1. 用支持 HTTP/3 的浏览器或工具访问 HTTPS://api.xxx.com
 
2. 查看响应头 alt-svc
1. 响应头包含 alt-svc: h3=":443"(支持 HTTP/3);
 
2. 响应时间比 HTTP/2 快 20%+
Compat-002 CORS 跨域配置验证 1. 从前端域名 https://web.xxx.com 发送跨域请求 GET /api/data
 
2. 查看响应头 Access-Control-*
1. 响应头包含 Access-Control-Allow-Origin: https://web.xxx.com
 
2. 无跨域报错,请求成功

2. 配置有效性验证

用例 ID测试场景测试步骤预期结果
Config-001 不缓存接口配置验证 1. CDN 配置 POST /api/pay 不缓存;
 
2. 多次发送该请求,查看 X-Cache 头
1. 所有请求均返回 X-Cache: MISS(直接回源);
 
2. 响应数据为实时支付结果
Config-002 防盗链(Referer)验证 1. CDN 配置仅允许 web.xxx.com Referer 访问;
 
2. 模拟 Referer 为 https://web.xxx.com 发送请求;
 
3. 模拟 Referer 为 https://恶意域名.com 发送请求
1. 合法 Referer 请求成功;
 
2. 恶意 Referer 请求被拦截(响应 403)

(六)异常场景测试

用例 ID测试场景测试步骤预期结果
Error-001 接口响应超时(源站慢) 1. 模拟源站接口响应超时 10 秒;
 
2. 通过 CDN 发送请求(CDN 超时配置为 5 秒)
1. CDN 5 秒后返回 504 Gateway Timeout;
 
2. 不无限等待源站响应
Error-002 接口返回非 200 状态码(如 404/500) 1. 发送请求 GET /api/nonexistent(源站返回 404);
 
2. 查看 CDN 缓存情况
1. CDN 不缓存 404/500 响应;
 
2. 后续相同请求均回源,返回最新状态码
Error-003 大体积响应数据(如 10MB JSON) 1. 发送请求 GET /api/large-data(返回 10MB 数据);
 
2. 查看传输速度和完整性
1. 传输速度>直接访问源站的 2 倍(CDN 带宽优化);
 
2. 响应数据完整,无截断

四、测试结果判定标准

测试维度合格标准
缓存功能 缓存命中规则符合配置,无数据错乱;静态接口缓存命中率≥80%,动态接口不缓存
性能指标 平均响应时间<500ms;并发 1000 时超时率<0.1%;跨地域响应时间优化≥30%
稳定性 72 小时长稳运行响应成功率 100%;源站故障时降级生效,无服务中断
安全性 能拦截常见攻击(SQL 注入、XSS、DDoS);HTTPS 加密正常,鉴权有效
兼容性 支持 HTTP/2/3;跨域配置生效;不同网络 / 设备访问无异常

五、注意事项

  1. 测试前需明确接口是否可缓存(如登录、支付接口禁止缓存),避免配置错误导致测试无效;
  2. 缓存测试需重点关注 “动态参数排除”,防止用户个性化数据被缓存(如 user_idtoken);
  3. 性能测试需模拟真实用户分布(不同地域、网络),避免单一环境测试结果失真;
  4. 测试过程中需实时监控 CDN 日志和源站负载,及时定位缓存穿透、回源率过高等问题。
posted @ 2025-12-04 20:48  陈晓猛  阅读(0)  评论(0)    收藏  举报