FNOS-024 测试用例
| 项目 | 内容 |
|---|---|
| 需求编号 | FNOS-024 |
| 计划编号 | PLAN-FNOS-024 |
| 覆盖功能 | FNOS-024-01、FNOS-024-02 |
| 测试状态 | 通过 |
测试范围与需求分析
被测对象是插件对 HTTP 403 的分类与故障转移:除内容拦截(11128)与账号级受限(11140 + request illegal)外,其余 403 应触发换号并给出可见提示;401 与内容拦截语义不变。
关键风险点
| 风险 | 用例方向 |
|---|---|
| 内容拦截(可能以 403 出现)被误当成可换号,白耗其它账号额度 | 403 + 11128 必须仍为 CONTENT_BLOCKED |
| 账号受限(11140)被归进「其它 403」而丢失受限语义(不再写受限集合) | 403 + 11140 必须仍为 ACCOUNT_RESTRICTED |
| 401 被一并纳入换号,掩盖凭据失效 | 401 必须仍为 AUTH |
| 403 触发被「自动切换」偏好拦住 | 偏好关闭时仍应切换 |
| 提示原因与其它原因混用 | 断言 403 独立文案 |
测试环境
| 功能 | 执行环境 | 说明 |
|---|---|---|
| FNOS-024-01 | 本地构测 + 适配器级集成验证 | 真实 403 无法按需构造,用本地桩让聊天端点返回 403(不带业务码),其余请求代理真实上游 |
| FNOS-024-02 | 同上 | 提示文本在集成验证中直接断言 |
| 全部功能 | DSH Desktop | 与 Web 共用同一宿主逻辑,本轮未单独走查 |
被测插件不依赖 fnOS 专属能力,不要求真实 NAS 验收。
测试用例
FNOS-024-01 403 触发自动切换
| 用例 ID | 覆盖验收 | 用例 | 预期结果 | 优先级 |
|---|---|---|---|---|
| TC-001 | FNOS-024-01-AC-01 | 无业务码的 403 分类 | 返回 ACCOUNT_FORBIDDEN | P0 |
| TC-002 | FNOS-024-01-AC-02 | 403 + 11128 分类 | 仍为 CONTENT_BLOCKED(不换号) | P0 |
| TC-003 | FNOS-024-01-AC-02 | 403 + 11140 + request illegal 分类 | 仍为 ACCOUNT_RESTRICTED | P0 |
| TC-004 | FNOS-024-01-AC-02 | 401 分类 | 仍为 AUTH | P0 |
| TC-005 | FNOS-024-01-AC-01 | 适配器级集成:当前账号指向 403 桩,另一账号指向真实上游,autoSwitch=false | 自动切到真实账号并完成本轮(finish: stop) | P0 |
| TC-006 | FNOS-024-01-AC-01 | 同 TC-005 | 403 不被重试(重试策略不含该码) | P1 |
| TC-007 | FNOS-024-01-AC-01 | 403 不写入受限集合(源码断言) | 受限集合只由 11140 写入 | P1 |
FNOS-024-02 403 切换提示说明原因
| 用例 ID | 覆盖验收 | 用例 | 预期结果 | 优先级 |
|---|---|---|---|---|
| TC-008 | FNOS-024-02-AC-01 | 403 触发的切换提示 | 文案含「账号被上游拒绝(HTTP 403)」 | P0 |
| TC-009 | FNOS-024-02-AC-01 | 四类原因文案互不混用 | 额度不足 / 被限流 / 受限 / 403 各自正确 | P1 |
测试执行结果
| 用例 | 环境 | 结果 | 日期 | 备注 |
|---|---|---|---|---|
| TC-001~TC-004 | 单测 | 通过 | 2026-10-21 | tests/error-envelope.spec.ts |
| TC-005 | 适配器级集成(桩 403) | 通过 | 2026-10-21 | 输出:[CodeBuddy] 账号被上游拒绝(HTTP 403),账号「stub」,已自动切换至「13215565608」继续。收到;finish: stop;autoSwitch=false 下仍切换 |
| TC-006 | 单测 | 通过 | 2026-10-21 | tests/retry-policy.spec.ts |
| TC-007 | 单测(源码断言) | 通过 | 2026-10-21 | tests/auto-switch-toggle.spec.ts 断言偏好例外集合与受限集合写入条件 |
| TC-008 | 适配器级集成 | 通过 | 2026-10-21 | 见 TC-005 输出文本 |
| TC-009 | 单测 | 通过 | 2026-10-21 | 四类原因分支 |
汇总:9 条通过、0 条失败、0 条未执行。
回归:插件 73 个测试文件 943 条用例全绿;typecheck 与 build 通过。
测试数据清理:临时桩进程已停止、桩日志已删除、临时验证用例已删除;账号 endpoint 已还原(无本地 endpoint 残留)、活动账号恢复为健康账号、自动切换恢复开启。
Bug 记录
本轮无新增缺陷。测试过程中观察到两个既有的不稳定用例(与本次改动无关,单独运行均通过):
| 现象 | 说明 |
|---|---|
tests/cycles.spec.ts 旅行并发领取偶尔失败(expected 2 to be 1) | 并发时序相关,单独运行 3 次全过 |
tests/login-url.spec.ts 全量运行时偶发失败 | 依赖真实登录端点的网络用例,单独运行通过 |
已登记为观察项,未在本轮修改。
测试结论
FNOS-024 的两项功能验收通过:其它 403 已独立成码并触发换号(含自动切换偏好关闭的情况),提示按原因说明;内容拦截、账号受限与 401 的既有语义均未改变。
遗留项:DSH Desktop 未单独走查(改动全在宿主侧,两客户端共用同一适配器与决策逻辑)。