

接口测试里最烦的不是写一个请求,而是判断“这次接口改动到底会不会影响老客户端、老页面、老自动化用例”。字段改名、枚举收紧、响应码变化、鉴权变化、分页结构变化,这些问题如果只靠人工扫 PR,很容易漏。
这篇给的是一个小工具组合,不是大平台:oasdiff 负责找 OpenAPI 契约差异,Schemathesis 负责从 schema 生成接口探测,AI Agent 负责把差异翻译成 QA 能审的测试风险和回归建议。
适合的 QA 工作类型:接口测试、服务端测试、契约测试、PR 变更回归。
AI 直接参与的动作:读取契约差异,转成风险说明、重点回归接口、断言建议和缺陷复现描述。
接口联调里常见一句话:“这个字段前端不用了,我删掉了。”
但 QA 真正要判断的是:
如果完全人工看 OpenAPI diff,字段一多就会变成纯体力活。更好的方式是先让工具把“可能破坏兼容”的地方列出来,再让 AI 转成 QA 语言,最后由 QA 做判断。

这类场景最忌讳把所有责任都丢给 LLM。LLM 不应该负责判断 OpenAPI 两个版本到底哪里变了,因为这件事有确定性工具。
更稳的分工是:
oasdiff:比较 base/head 两份 OpenAPI,输出 breaking changes 或 changelog。AI Reviewer:读取差异,把它转成 QA 风险:哪些接口、哪些客户端、哪些断言要补。Schemathesis:基于 OpenAPI 自动生成探测请求,覆盖边界参数和异常响应。QA:审查 AI 输出是否符合业务兼容策略,决定阻断、放行还是补例外说明。官方文档里,oasdiff breaking 的目标就是显示会破坏现有 API client 的变更,changelog 则显示可能影响消费者的非纯文档变化。文档也提到这些命令常用于 CI 来报告或阻止 breaking changes。
Schemathesis 官方说明则更偏执行层:它会从 OpenAPI 或 GraphQL schema 自动生成 property-based tests,去探索可能破坏 API 的边界情况,并给出最小 curl 复现命令。

原始做法通常是:
Agent 工作流应该改成:
oasdiff breaking 输出结构化差异。
不要一上来把全公司 OpenAPI 都接进来。先选一个接口,比如订单详情、用户配置、会员权益查询。
准备两份文档:
openapi-base.yaml
openapi-head.yaml
先做契约差异:
oasdiff breaking openapi-base.yaml openapi-head.yaml
如果要让 CI 在明确错误级别时失败,可以参考官方文档里的 --fail-on ERR 或 --fail-on WARN 思路。但在团队刚落地时,我不建议直接对所有 WARN 阻断。先让 QA 看一周输出,建立误报和例外规则。
再对目标 API 做一轮 schema 探测:
uvx schemathesis run http://test-env.example.com/openapi.json
这不是为了证明“接口一定没问题”,而是为了快速找到人工样例不容易覆盖的边界输入、状态码不一致、响应不符合 schema、服务端 500 这类问题。
AI 可以接在两个输出后面,让它只做三件事:
不要让 AI 自己决定是否放行。
第一,少扫字段。
契约差异由确定性工具给出,QA 不再靠肉眼在两份文档里找新增、删除、必填变化、响应结构变化。
第二,少凭经验挑接口。
差异能告诉你哪些 operation 发生了变化,Schema 探测能优先覆盖受影响接口,而不是整套回归平均用力。
第三,少写重复断言。
AI 可以根据差异建议断言:字段是否仍存在、枚举是否兼容、错误码是否符合文档、老参数是否仍被接受。
第四,少写缺陷描述。
Schemathesis 这类工具给出的最小复现命令,加上 AI 整理的影响范围,可以让缺陷单更接近“研发可直接定位”的状态。
第一,breaking change 不等于一定不能发。
如果这是大版本接口、灰度接口、只给新客户端使用,可能允许变更。是否阻断要结合版本策略。
第二,文档变更不等于服务实现变了。
有时是 OpenAPI 补文档,有时是实现先变文档后补。QA 要确认测试环境里的真实行为。
第三,AI 生成的断言不能全收。
有些断言太细,会导致自动化用例和实现强绑定。QA 要保留业务稳定断言,删掉脆弱的内部实现断言。
第四,探测请求要控制数据影响。
对订单、支付、库存、权益类接口,不能随便跑会改变状态的请求。需要只读环境、Mock、沙箱账号或明确清理策略。

优先选这些:
暂时不适合这些:
接口契约回归 Agent 的核心不是“让 AI 测接口”,而是把接口变更拆成三层:确定性差异、可执行探测、人工兼容判断。
oasdiff 和 Schemathesis 负责确定性和执行,AI 负责把输出变成 QA 能审的测试风险,QA 负责最终判断。
这条链路的最小价值很清晰:PR 阶段提前暴露破坏性变更,把一次联调事故转成可复用的契约回归资产。