run_20261101_085833http://192.168.16.251 (Host: cfc.iwintrue.com)冒烟脚本的判定只有一档: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% —— 这个数字才具备诊断价值。
| 方法 | 路径 | 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 |
这些应转入 410 Gone 并从用例分母剔除,否则长期污染通过率:
POST /api/auth/auto-login — 该接口已废弃,请改用 /api/auth/silent-loginPOST /api/family/user/switch-back-to-parent — 该接口已废弃,请使用 /api/family/member/switchPOST /api/family/user/switch-mode — 该接口已废弃,请使用 /api/family/member/switchPOST /api/family/user/switch-to-child — 该接口已废弃,请使用 /api/family/member/switch复读未取得 JSON message(超时/挂起/网关异常),标为待核实,不代表通过也不代表失败:
POST /api/contact/delete — 请求异常: TimeoutErrorPOST /api/contact/import-phone — 请求异常: TimeoutErrorPOST /api/indicator/trend — 请求异常: TimeoutError生成方式:python interface_classify_failures.py 机读明细:interface_fail_classification.tsv