用 Apifox 测试 Claude API:从三层契约断言到 Agent 自动化回归
接入 claude-fable-5-2 这类默认开启自适应思考的大模型 API 时,单次 curl 调通不代表集成稳定。HTTP 200 响应可能掩盖输出被 max_tokens 截断、把 thinking 块误解析为用户正文,或沿用旧版思考参数导致的契约报错。本文介绍如何建立传输、契约、行为三层断言,并通过编码 Agent 与 Apifox CLI 将正向基线和 4 类负向检查固化为 CI 回归测试集。
一、Claude Fable 5.2 回归测试的三层模型
测试大模型接口时,逐字比对全文会让用例极脆弱,只看状态码又会漏掉结构回归。建议拆分为三个层次:

图 1:传输、契约、行为三层测试架构示意图图 1:传输、契约、行为三层断言,过滤思考块并拦截截断
起步阶段优先使用极小算术 fixture:What is 2 + 2? Reply with the numeral only.。它不引入文件、工具或对话历史,能快速暴露“把思考块当正文提取”或“忽略截断状态”的缺陷。
二、固定身份验证与基线请求参数
直连 Claude Platform 的 /v1/messages 端点时,需固定模型 ID、API 版本头和请求体。注意区分两套凭据:ANTHROPIC_API_KEY 用于请求 Anthropic,APIFOX_ACCESS_TOKEN 用于 Apifox CLI 鉴权,切勿混用或将明文密钥写进用例文件。
将基线配置保存为 request.json:
{
"model": "claude-fable-5-2",
"max_tokens": 1024,
"stream": false,
"thinking": { "type": "adaptive" },
"messages": [
{
"role": "user",
"content": "What is 2 + 2? Reply with the numeral only."
}
]
}
使用终端或编码 Agent 发送请求:
curl https://api.anthropic.com/v1/messages
-H "Authorization: Bearer $ANTHROPIC_API_KEY"
-H 'anthropic-version: 2026-10-21'
-H 'Content-Type: application/json'
--max-time 600
--dump-header response.headers
--output response.json
--write-out '%{http_code}n'
--data-binary @request.json
若密钥非工作区范围,需按文档补充 anthropic-workspace-id 头。1024 是当前输出预算,复杂任务可按需调高。
三、编写容忍生成波动的 Apifox 响应断言
由于 content 是带类型块数组,不能直接假设 content[0].text 就是答案。在 Apifox 后置脚本中,先校验消息信封,再过滤 type === "text" 的块:
pm.test("HTTP success", function () {
pm.response.to.have.status(200);
});
const body = pm.response.json();
pm.test("Assistant message contract", function () {
pm.expect(body.type).to.eql("message");
pm.expect(body.role).to.eql("assistant");
pm.expect(body.id).to.be.a("string");
pm.expect(body.model).to.be.a("string");
pm.expect(body.content).to.be.an("array");
});
const text = body.content
.filter(block => block.type === "text")
.map(block => block.text)
.join("n").trim();
pm.test("Arithmetic fixture is complete", function () {
pm.expect(body.stop_reason).to.eql("end_turn");
pm.expect(text).to.eql("4");
});
注意两点:一是 stop_reason 若为 max_tokens 代表输出触达上限被截断,算术用例应判失败;二是受限数字题可用精确相等,开放式摘要则应断言必选事实与长度边界,容忍正常措辞变化。同时记录 usage 与 request-id 头以便诊断。
四、补齐 4 类负向回归用例
保持正向基线不变,每次只改一个字段,建立 4 个独立负向用例:

claude-fable-5-2 始终开启思考,照抄旧版关闭思考或 enabled 扩展思考的代码都会触发 400。每个负向用例均需断言 body.type === "error"、预期 body.error.type 和非空错误消息。
图 2:正向算术基线与 4 类负向用例断言矩阵图图 2:固定极小算术基线,用 4 个单变量负向用例抓配置回退
五、用编码 Agent + Apifox CLI 落地 CI 回归
通过编码 Agent 配合 Apifox CLI 2.2.12,可自动完成 schema 校验、用例创建与 CI 运行:
npm i -g apifox-cli@latest --registry=https://registry.npmmirror.com/
apifox auth login --with-token "$APIFOX_ACCESS_TOKEN"
apifox test-case category --project
apifox cli-schema get test-case-create
apifox cli-schema validate test-case-create --file ./case.json
apifox test-case create --project --file ./case.json
apifox test-case run --project -e -r cli,json,junit --out-dir ./apifox-reports
实操避坑要点:
**必填
categoryId**:把apifox test-case category返回的分组 ID 写入case.json,否则用例创建后在客户端分类中不可见。绑定真实端点 ID:先在项目内定义
POST /v1/messages,基于真实端点派生测试用例。CI 批量执行:将
换成--endpoint即可运行该接口下全部回归用例并导出报告。
图 3:编码 Agent 结合 Apifox CLI 执行回归测试的流水线图图 3:隔离双密钥,用 Apifox CLI 跑通 CI 回归
原文链接:https://apifox.com/apiskills/test-claude-fable-5-2-api-apidog/
