# CFC 接口失败分型报告 - 数据源轮次:`run_20261101_085833` - 目标:`http://192.168.16.251` (Host: `cfc.iwintrue.com`) - 唯一失败端点:**292** ## 一、为什么要做这个分型 冒烟脚本的判定只有一档:`biz==200` 记为 BIZ_OK,其余全部 BIZ_FAIL。 而绝大多数用例是**空 body** 请求,于是「没喂必填参数」和「后端真有缺陷」 混为一谈,导致通过率长期锁死在 45%,既看不见真实质量,也不知道该修什么。 本报告按接口返回的业务 `message` 文本,把失败重新归类。 ## 二、分型结果 | 类型 | 数量 | 含义 | 是否需研发处理 | |---|---:|---|---| | REAL_ERR | 49 | **真缺陷候选**:通用业务异常,无法用"缺参数/占位数据"解释 | **是** | | AUTH_FAIL | 25 | 鉴权/权限拦截失败,需确认是预期行为还是用例缺 token | 待定 | | PRECONDITION | 18 | 用例未按业务流程先建立上下文(如先创建家庭),属**用例设计问题** | 否 | | DATA_STUB | 32 | 占位 ID(默认 1)查不到记录,属**测试数据问题** | 否 | | PARAM_MISSING | 155 | 请求体未填必填参数,属**测试数据问题** | 否 | | PARAM_INVALID | 6 | 参数值不合法(格式/类型/范围),属测试数据问题 | 否 | | DEPRECATED | 4 | 接口已声明废弃,应从通过率分母中剔除 | 否(建议清规格) | | UNKNOWN | 3 | 复读未拿到 JSON message,无法判定,需补测 | 待核实 | | **合计** | **292** | | | **结论**:292 个被记为"业务失败"的端点中,**215 个(73%)是测试数据/规格噪声**,真正需要研发关注的为 **74 个**(真缺陷 49 + 鉴权待定 25)。 > 剔除噪声后,剩余 77 个有效端点中真缺陷占比 **63%** —— 这个数字才具备诊断价值。 ## 三、真缺陷候选清单(49 个) | 方法 | 路径 | biz | 返回 message | |---|---|---:|---| | POST | `/api/activity/publish` | 500 | 只有管理员或活动管理员可以发布活动 | | POST | `/api/articles/report-reading-time` | 500 | success | | POST | `/api/common/qrcode` | 500 | 不支持的二维码类型 | | POST | `/api/consignee/delete` | 500 | 服务器内部错误 | | POST | `/api/consignee/detail` | 500 | 服务器内部错误 | | POST | `/api/coupon/apply` | 500 | 服务器内部错误 | | POST | `/api/coupon/claim` | 500 | 未加入家庭 | | POST | `/api/dan-assessment/appointment/cancel` | 500 | 取消失败 | | POST | `/api/dan-assessment/order/pay` | 500 | 支付失败 | | POST | `/api/diet/ingredients/add` | 500 | 服务器内部错误 | | POST | `/api/diet/ingredients/recommend` | 500 | 服务器内部错误 | | POST | `/api/diet/ingredients/remove` | 500 | 服务器内部错误 | | POST | `/api/diet/ingredients/suggest` | 500 | 服务器内部错误 | | POST | `/api/diet/meals/config/save` | 400 | 服务器内部错误 | | POST | `/api/family/mbti/latest` | 500 | success | | POST | `/api/family/mbti/profile` | 500 | 服务器内部错误 | | POST | `/api/family/mbti/questions` | 500 | 服务器内部错误 | | POST | `/api/family/self-check/generate-plan` | 500 | 计划生成失败,请稍后重试 | | POST | `/api/family/user/children` | 400 | 服务器内部错误 | | POST | `/api/family/user/members/update-visibility` | 500 | 服务器内部错误 | | POST | `/api/growth/record/create` | 500 | 服务器内部错误 | | POST | `/api/growth/record/create-from-upload` | 500 | 服务器内部错误 | | POST | `/api/growth/record/create-with-order` | 500 | 服务器内部错误 | | POST | `/api/growth/record/list` | 500 | 服务器内部错误 | | POST | `/api/growth/record/supplement` | 500 | 服务器内部错误 | | POST | `/api/guide-config/current` | 500 | 服务器内部错误 | | POST | `/api/guide/messages/list` | 500 | 只有成长规划师可以查看 | | POST | `/api/health/challenge/progress` | 500 | 仅家庭成员可打卡 | | POST | `/api/health/plan/generate` | 4001 | 请升级为家庭会员或购买健康启航计划 | | POST | `/api/health/report/create` | 4001 | 请先购买健康启航计划体验包 | | POST | `/api/health/report/reassign` | 500 | 服务器内部错误 | | POST | `/api/indicator/change-ranking` | 500 | 服务器内部错误 | | POST | `/api/indicator/correlation/list` | 500 | 服务器内部错误 | | POST | `/api/indicator/quick-lookup` | 500 | 服务器内部错误 | | POST | `/api/insurance/planning` | 500 | 服务器内部错误 | | POST | `/api/meal/recommend` | 500 | 暂无可用食材和食谱,请联系运营配置 | | POST | `/api/membership/compare` | 500 | 服务器内部错误 | | POST | `/api/product/create` | 500 | 仅审核通过的服务商可发布商品 | | POST | `/api/product/purchase_fields/required` | 500 | 服务器内部错误 | | POST | `/api/task/reminder-config/save` | 500 | 至少选择一个提醒渠道 | | POST | `/api/tasks/accept` | 500 | 服务器内部错误 | | POST | `/api/tasks/create` | 400 | 服务器内部错误 | | POST | `/api/tianpan/annual-energy` | 500 | 服务器内部错误 | | POST | `/api/user/portrait/edit` | 500 | 服务器内部错误 | | POST | `/api/wishes/1/confirm` | 500 | 确认失败,请检查心愿状态 | | POST | `/api/wishes/1/exchange` | 500 | 申请兑换失败,请检查心愿状态 | | POST | `/api/wishes/1/fulfill` | 500 | 标记失败,请检查心愿状态 | | POST | `/api/wishes/1/reject` | 500 | 拒绝失败,请检查心愿状态 | | POST | `/api/withdrawal/apply` | 500 | 提现金额必须大于0 | ## 四、已废弃但仍在跑的接口(4 个) 这些应转入 410 Gone 并从用例分母剔除,否则长期污染通过率: - `POST /api/auth/auto-login` — 该接口已废弃,请改用 /api/auth/silent-login - `POST /api/family/user/switch-back-to-parent` — 该接口已废弃,请使用 /api/family/member/switch - `POST /api/family/user/switch-mode` — 该接口已废弃,请使用 /api/family/member/switch - `POST /api/family/user/switch-to-child` — 该接口已废弃,请使用 /api/family/member/switch ## 五、未能判定(3 个) 复读未取得 JSON message(超时/挂起/网关异常),标为**待核实**,不代表通过也不代表失败: - `POST /api/contact/delete` — 请求异常: TimeoutError - `POST /api/contact/import-phone` — 请求异常: TimeoutError - `POST /api/indicator/trend` — 请求异常: TimeoutError --- 生成方式:`python interface_classify_failures.py` 机读明细:`interface_fail_classification.tsv`