编程

接口测试

试用

当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

它能做什么

当需要测试 RESTful/GraphQL/gRPC/WebSocket 等 API 时使用此技能。覆盖接口的功能验证、参数组合、鉴权绕过、超时重试、幂等性、接口契约和向后兼容性。不要只测 HTTP 状态码——真正的接口 Bug 往往在数据结构不一致、字段类型不匹配、空值处理和并发调用上。输出接口测试矩阵、契约断言清单和工具选型建议。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

技能文档

接口测试专项

核心原则

接口是系统的骨架,接口测试是自动化的基石。

启动方式:用户提出接口测试需求后,按接口类型速查表定位协议特点,启动六维测试方案输出。

深度要求

复杂度用例数要求说明
简单接口接口数×5单一功能接口
中等接口接口数×10多参数接口
复杂接口接口数×15多依赖/多状态接口

必须覆盖的6个维度

维度占比说明
功能测试40%正向/反向/边界/参数
安全测试20%认证/授权/注入
异常测试15%超时/重试/降级
性能测试10%响应时间/并发
契约测试10%接口契约验证
兼容性测试5%版本兼容

接口类型速查

不同协议接口各有侧重,以下为推荐测试重点:

接口类型典型代表测试重点协议特点
RESTfulCRUD API、微服务接口状态码、HTTP方法语义、RESTful规范符合度无状态、资源导向、Cache
GraphQL聚合查询、数据中台查询复杂度、N+1问题、权限细粒度单一端点、按需查询
gRPC内部服务通信、高吞吐场景消息格式、流处理、超时重试Protobuf、双向流、高性能
WebSocket实时推送、消息通知连接管理、心跳、消息顺序长连接、全双工、有状态

核心流程

1. 功能测试

测试维度:
├─ 正向测试:正常输入返回正确结果
├─ 反向测试:异常输入返回正确错误
├─ 边界测试:边界值处理正确
├─ 参数测试:参数组合覆盖
└─ 业务测试:业务规则验证

测试用例设计:
├─ 入参校验:类型、长度、格式、必填
├─ 返回校验:状态码、响应体、响应头
├─ 业务校验:数据正确性、状态变更
└─ 异常校验:错误码、错误信息

2. 安全测试

测试维度:
├─ 认证测试:Token/Session/OAuth
├─ 授权测试:角色权限、资源访问
├─ 注入测试:SQL注入、XSS、命令注入
├─ 数据安全:敏感数据加密、脱敏
└─ 速率限制:限流、防刷

常见漏洞:
├─ 越权访问:水平越权、垂直越权
├─ 认证绕过:Token伪造、Session固定
├─ 注入攻击:SQL注入、命令注入
└─ 敏感泄露:密码明文、敏感信息暴露

3. 异常测试

测试维度:
├─ 超时场景
│   ├─ 连接超时:TCP连接建立超时
│   ├─ 读取超时:响应数据返回超时
│   └─ 超时重试:超时后的重试行为是否符合预期
│
├─ 重试机制
│   ├─ 幂等性:重复请求是否产生副作用
│   ├─ 退避策略:重试间隔是否合理
│   └─ 重试上限:达到最大重试次数后的行为
│
├─ 故障容错
│   ├─ 降级策略:下游服务异常时是否降级
│   ├─ 熔断机制:连续失败是否触发熔断
│   └─ 限流效果:超出限流阈值时的响应
│
└─ 数据异常
    ├─ 空响应:返回空数据时的处理
    ├─ 部分数据:数据不完整时的处理
    └─ 数据损坏:返回数据格式错误时的处理

4. 性能测试

测试维度:
├─ 响应时间:P50/P95/P99
├─ 并发能力:并发请求处理
├─ 吞吐量:TPS/QPS
├─ 稳定性:长时间运行
└─ 资源消耗:CPU/内存/连接

测试方法:
├─ 基准测试:单请求性能基线
├─ 负载测试:预期负载下表现
├─ 压力测试:极限负载下表现
└─ 波动测试:流量波动下表现

5. 契约测试

测试维度:
├─ 消费者驱动
│   ├─ 消费者期望:API是否满足消费者的调用期望
│   ├─ 请求-响应匹配:请求参数和响应结构的匹配
│   └─ 消费者契约集:所有消费者的契约汇总验证
│
├─ 生产者验证
│   ├─ 接口实现验证:实际接口是否符合契约约定
│   ├─ 回归检查:接口变更是否破坏已有契约
│   └─ 版本策略:契约版本管理与兼容性保证
│
└─ 自动化集成
    ├─ CI集成:契约测试是否纳入流水线
    ├─ 变更通知:契约变更时是否通知相关方
    └─ 契约仓库:契约文件是否统一管理

6. 兼容性测试

测试维度:
├─ 版本兼容
│   ├─ 向后兼容:新版本是否支持旧版本客户端
│   ├─ 向前兼容:旧版本是否能处理新版本响应
│   └─ 版本迁移:接口版本迁移方案是否平滑
│
├─ 协议兼容
│   ├─ 多协议支持:REST/GraphQL/gRPC行为是否一致
│   ├─ 序列化格式:JSON/XML/Protobuf兼容性
│   └─ 编码格式:UTF-8/ASCII等编码处理
│
└─ 集成兼容
    ├─ 上游依赖:依赖服务变更后的适配能力
    ├─ 中间件兼容:网关/代理/负载均衡的影响
    └─ 客户端兼容:不同SDK版本/语言的兼容性

接口测试工具选型

工具协议支持自动化契约测试Mock适用场景
Postman/ApifoxREST/GraphQL/WebSocket手动+脚本接口调试、文档管理、小规模自动化
pytest+requests通用HTTPPython项目API自动化、CI集成
REST AssuredRESTJava项目API自动化
KarateREST/GraphQL全栈API测试(单工具方案)
PactREST/GraphQL消费者驱动契约测试
WireMock通用HTTP第三方Mock、异常模拟
gRPCurl/gRPCuigRPC手动gRPC接口调试

Mock策略

Mock时机

需要Mock的场景:
├─ 第三方服务:支付、短信、地图
├─ 不稳定服务:外部依赖
├─ 开发中服务:接口未就绪
├─ 特殊场景:异常、超时、限流
└─ 测试数据:特定数据构造

Mock工具

├─ WireMock:Java生态,功能全面
├─ MockServer:轻量级,易于使用
├─ Postman Mock:在线Mock服务
├─ MSW:前端Mock,拦截请求
└─ 自建Mock:Python/Node.js脚本

检查清单

功能测试检查

  • 正向测试:正常输入返回正确结果
  • 反向测试:异常输入返回正确错误
  • 边界测试:边界值处理正确
  • 参数测试:参数组合覆盖
  • 业务测试:业务规则验证

安全测试检查

  • 认证测试:Token/Session/OAuth
  • 授权测试:角色权限、资源访问
  • 注入测试:SQL注入、XSS、命令注入
  • 数据安全:敏感数据加密、脱敏
  • 速率限制:限流、防刷

异常测试检查

  • 超时测试:请求超时处理
  • 重试测试:失败重试机制
  • 降级测试:服务降级处理
  • 熔断测试:熔断机制验证

性能测试检查

  • 响应时间:P50/P95/P99
  • 并发能力:并发请求处理
  • 吞吐量:TPS/QPS
  • 稳定性:长时间运行

契约测试检查

  • 消费者契约:消费者期望的接口行为是否满足
  • 生产者契约:接口提供方是否履行约定
  • 契约版本管理:接口变更是否遵循版本策略
  • 契约自动化验证:契约是否集成到CI/CD

兼容性测试检查

  • 版本兼容:新旧版本接口是否兼容
  • 协议兼容:不同协议实现是否一致
  • 数据格式兼容:JSON/XML/Protobuf格式兼容
  • 上游兼容:依赖服务变更后的影响

输出示例

用户说"测试这个登录接口" → 启动接口测试六维覆盖:

  • 功能:正常登录、错误密码、参数缺失
  • 安全:Token伪造、SQL注入、越权访问
  • 异常:超时、重试、幂等性
  • 性能:响应时间基准、并发阈值
  • 契约:接口契约是否符合OpenAPI定义
  • 兼容:新旧版本接口是否兼容

接口文档(OpenAPI/Swagger)已提供 → 基于文档自动生成接口测试方案,识别接口类型(RESTful/GraphQL),输出六维测试要点和Mock策略

场景:测试一个第三方支付回调接口 → 重点覆盖异常与Mock:

  • Mock策略:模拟支付网关超时、签名错误、重复回调
  • 异常测试:回调超时重试机制、幂等性验证
  • 安全测试:回调签名验证、回调地址白名单
  • 契约测试:支付回调的请求/响应格式是否符合约定

场景:升级版本后部分接口报错(兼容性问题) → 启动兼容性检查:

  • 新版本响应中新增了必填字段,旧客户端无法解析
  • 接口URL路径变更,旧版本路由失效
  • 返回数据格式从XML改为JSON,旧客户端兼容性 → 输出:兼容性影响分析报告 + 版本迁移方案

相关技能

当需要测试 AI Agent(智能体、聊天机器人、AI 助手)时使用此技能。Agent 测试和传统功能测试完全不同——你要测的不是"点按钮看结果",而是它的推理链路、工具调用时机、幻觉率、Prompt 注入防护、角色边界保持和记忆一致性。如果 Agent 能乱调用工具或泄漏系统 Prompt,那就是安全事件。⚠️ Agent 测试必须包含功能安全可控可靠九维覆盖,缺一不可。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装

当需要把测试集成到 CI/CD 流水线中、或者现有流水线的测试环节跑起来效率低不可靠时使用此技能。覆盖流水线各阶段的分层测试卡点设计(提交检查→单元测试→接口测试→UI 测试→回归测试)、工具集成策略和质量门禁配置。不要在 CI 里堆满慢的 UI 测试——而是构建测试金字塔:提交阶段跑最快的(<5min),合码阶段跑核心的(<15min),夜间跑全量的。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装

根据不同的测试目标和上下文,选择最佳的提示词模式来驱动AI生成高质量的测试用例。当AI输出的测试用例质量不够好、太泛泛、或者深度不够时,问题往往不在AI而在提示词。此技能提供结构化提示词模板,注入前面步骤产出的分析结果,输出包含角色定义、输出格式规范和约束条件的优化提示词。⚠️ 作为工作流的必过步骤,不得跳过。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

2 次安装

从需求文档自动生成结构化测试用例,覆盖功能测试、边界分析、组合测试和回归测试全流程。自动串联48个专家级子技能,按12步工作流编排执行。适用于:上传需求文档(PRD/Word/PDF/URL)需要完整测试用例时、不知道如何设计测试场景或担心遗漏边界条件时、需要AI评审测试输出并补充测试盲区时。每个步骤都有独立技能支撑,输出格式统一、需求可追溯、覆盖率可量化。

2 次安装1 星标

当需求文档信息不够、不知道接下来该问产品什么、或者需要从开发那边获取更多技术细节时使用此技能。很多人测不好不是因为不会设计用例,而是因为一开始就没问对问题。提供需求调研、边界确认、规则挖掘、技术细节追问等不同场景的结构化提问模板,确保在测试设计前获取到足够上下文。每一个问题都标注了问谁、怎么问、什么时候问。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

1 次安装

在最终输出前对测试用例做最后一轮防幻觉验证:事实核查(引用的需求ID是否存在)、一致性检查(用例之间是否矛盾)、可执行性验证(步骤是否能实际操作)、来源追溯(每个用例是否能追溯到具体需求)。当测试用例已经生成完毕、准备输出了,但你不确定AI有没有编造不存在的功能或需求时,应当使用此技能。这是整个工作流的最终质量守门——如果验证失败,必须返回问题清单要求修正,不得跳过。 本技能属于 QA Test Skills 技能集(49 个技能之一),完整工作流体验需安装全套:npx skills add Kokxi/qa-test-skills

1 次安装