FNOS-002 测试用例明细
本页逐条收录生成任务 task_20260831_195834 产出的 115 条测试用例。字段内容来自 P6 原始产物,执行状态为空的用例统一标记为“未记录”,不代表测试通过。
质量门禁与业务执行是两个阶段:单条用例的执行结果需要在真实环境验收后回填;本页不将“未记录”状态视为通过。
共 115 条用例。
单元测试实现情况
FNOS-002 的可单元化逻辑已按测试点补充 Vitest 测试。单元测试标题中的 FNOS-002-*、RISK-* 编号用于追溯对应的测试用例;涉及真实 NAS、浏览器交互、FPK 安装升级和跨进程行为的用例仍需业务环境验收。
| Workspace | 测试文件 | 测试用例 | 主要覆盖范围 |
|---|---|---|---|
@tnnevol/dsh-codex-auth | 11 | 35 | 登录状态、用量窗口、边界值、异常响应 |
@tnnevol/dsh-fnos | 14 | 69 | NAS 引用、Tree 状态、快捷键、主题和插件契约 |
@tnnevol/dsh-semi-ui | 2 | 4 | 共享组件导出和主题桥接 |
@tnnevol/dsh-semi-ui-showcase | 2 | 23 | 组件菜单、状态展示、路由和 Popover |
@tnnevol/fnos-gateway | 10 | 26 | 网关路径、响应头、静态资源、SSE、WebSocket 和恢复 |
| 合计 | 39 | 157 | Vitest 全部通过 |
该统计是单元测试执行数量,不表示 157/115 的业务用例覆盖率;业务用例仍按本页各条记录执行和回填结果。
自动化测试执行状态
2026-09-01 已执行根目录 pnpm run test:unit:39 个测试文件、157 条自动化测试全部通过。该结果覆盖共享 Semi UI、fnOS 插件、Codex Auth、Semi UI 展示插件和 fnOS 网关的非破坏性逻辑;需要真实 NAS、浏览器、FPK 安装升级、故障注入或外部状态变更的业务用例不因单元测试通过而改变执行状态。
真实 NAS 浏览器执行摘要
2026-09-01 在 http://192.168.119.6:5666/ 的 fnOS 页面中使用 Chrome 验证了 7 条业务用例,结果均为“通过”。完整环境、步骤和 Network 证据见FNOS-002 真实 NAS 浏览器验收记录。其余需要故障注入、权限切换、FPK 升级回滚、并发控制或专门测试数据的用例仍保持“未记录”,不自动视为通过。
Codex 登录与用量状态
FNOS-002-dsh-app-plugin-optimization-TP-001-TC-001 · 登录成功后查看 Codex 状态与用量入口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-001-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-001 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | Codex Chrome / NAS |
| 执行状态 | 通过 |
| 截图 | 真实 NAS 验收记录 |
前置条件
- 已登录 DSH 用户使用 Codex 账号,鉴权状态返回已登录;2. 预置1个可用 Codex 账号状态,通过鉴权接口返回登录结果;3. DSH Web 已加载且 Codex 状态接口可访问。
操作步骤
- 打开 DSH Web,等待页面完成鉴权状态加载
- 在页面中定位「Codex 状态区域」
- 点击「Codex 用量入口」
预期结果
- 页面显示 Codex 登录状态区域,登录状态文案显示为「已登录」
- Codex 状态区域显示已登录状态,登录入口不显示
- 页面显示已登录用户的 Codex 用量信息入口
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
FNOS-002-dsh-app-plugin-optimization-TP-001-TC-002 · 会话输入区展示已登录用户的 Codex 用量入口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-001-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-001 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | Codex Chrome / NAS |
| 执行状态 | 通过 |
| 截图 | 真实 NAS 验收记录 |
前置条件
- 已登录 DSH 用户使用 Codex 账号,鉴权接口返回已登录;2. 预置1个可用 Codex 账号状态,通过鉴权接口返回登录结果;3. DSH Web 已加载并打开「会话→输入区」,Codex 状态接口可访问。
操作步骤
- 打开 DSH Web 的「会话→输入区」页面
- 在页面中定位「Codex 状态区域」
- 点击「Codex 用量入口」
预期结果
- 页面在鉴权完成后显示会话输入区,Codex 状态区域可见
- Codex 状态区域显示登录状态文案「已登录」,登录入口不显示
- 页面显示 Codex 用量入口,入口文案与登录用户状态关联
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
FNOS-002-dsh-app-plugin-optimization-TP-002-TC-001 · 鉴权加载中不显示已登录状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-002-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-002 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 普通用户已登录 DSH,但 Codex 鉴权请求处于加载中;2. 预置1个鉴权请求未返回的 Codex 账号状态,通过测试代理延迟响应;3. DSH Web 已加载且状态区域可访问。
操作步骤
- 打开 DSH Web,等待 Codex 鉴权请求进入加载状态
- 在页面中定位「Codex 状态区域」
- 点击「Codex 用量入口」
预期结果
- 页面显示 Codex 鉴权加载状态,状态区域不显示「已登录」文案
- Codex 状态区域不显示用户用量数值和用量入口
- 页面保留登录入口,未弹出已登录用户用量信息
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 [术语不一致: 统一为 打开「DSH Web→设置→Code」] |
FNOS-002-dsh-app-plugin-optimization-TP-002-TC-002 · 鉴权失败后回到未登录展示
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-002-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-002 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 普通用户已登录 DSH,但 Codex 鉴权接口返回失败;2. 预置1个鉴权失败响应,通过测试代理返回错误状态;3. DSH Web 已加载且 Codex 状态区域可访问。
操作步骤
- 打开 DSH Web,等待 Codex 鉴权请求返回失败
- 在页面中定位「Codex 状态区域」
- 点击「Codex 登录入口」
预期结果
- 页面显示 Codex 鉴权失败后的未登录状态,状态文案变为「未登录」
- Codex 状态区域不显示用户用量和已登录信息
- 页面显示登录或重新鉴权入口,入口可用于再次发起登录
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 [术语不一致: 统一为 打开「DSH Web→设置→Code」] |
FNOS-002-dsh-app-plugin-optimization-TP-002-TC-003 · 未登录状态禁止打开 Codex 用量入口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-002-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-002 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 普通用户处于未登录 Codex 状态;2. 预置1个未登录状态响应,通过鉴权接口返回未登录结果;3. DSH Web 已加载且状态区域可访问。
操作步骤
- 打开 DSH Web,等待 Codex 状态区域完成加载
- 在页面中定位「Codex 状态区域」
- 点击「Codex 登录入口」
预期结果
- 页面显示未登录状态,已登录状态文案不显示
- Codex 用量入口不显示,用户用量信息不出现在页面
- 页面显示登录入口并打开登录流程,未弹出用量详情
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 [术语不一致: 统一为 打开「DSH Web→设置→Code」] |
FNOS-002-dsh-app-plugin-optimization-TP-003-TC-001 · 未登录时隐藏 Codex 状态与用量
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-003-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-003 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 普通 DSH 用户处于未登录 Codex 状态;2. 预置1个未登录鉴权响应,通过鉴权接口返回未登录结果;3. DSH Web 已加载且 Codex 状态区域可访问。
操作步骤
- 打开 DSH Web,等待 Codex 状态区域加载
- 在页面中定位「Codex 状态区域」
- 点击「Codex 登录入口」
预期结果
- 页面显示未登录状态,已登录文案不显示
- Codex 状态区域不显示用户用量详情和 Codex 用量入口
- 页面显示登录入口并打开登录流程
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 [术语不一致: 统一为 打开「DSH Web→设置→Code」] |
FNOS-002-dsh-app-plugin-optimization-TP-003-TC-002 · 鉴权失败时不展示已登录信息
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-003-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-003 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 普通 DSH 用户已进入 DSH,Codex 鉴权请求返回失败;2. 预置1个失败鉴权响应,通过测试代理返回错误状态;3. DSH Web 已加载且 Codex 状态区域可访问。
操作步骤
- 打开 DSH Web,等待 Codex 鉴权请求返回失败
- 在页面中定位「Codex 状态区域」
- 点击「Codex 登录入口」
预期结果
- 页面显示鉴权失败后的未登录状态
- Codex 状态区域不显示已登录文案、用户用量和用量入口
- 页面显示登录或重新鉴权入口,未弹出已登录用户详情
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 [术语不一致: 统一为 打开「DSH Web→设置→Code」] |
FNOS-002-dsh-app-plugin-optimization-TP-004-TC-001 · 退出 Codex 登录并清理用量入口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-004-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-004 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,状态区域显示登录信息;2. 预置1个已登录用户状态和对应用量入口,通过鉴权接口返回登录结果;3. DSH Web 已加载且 Codex 设置面板可访问。
操作步骤
- 点击「退出登录」按钮
- 在页面中定位「Codex 状态区域」
- 点击「Codex 登录入口」
预期结果
- Codex 鉴权状态变为「未登录」,退出入口从状态区域减少
- Codex 状态区域不显示已登录文案、用户用量和受保护入口
- 页面跳转到 Codex 登录流程,登录入口显示为可操作状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 |
FNOS-002-dsh-app-plugin-optimization-TP-004-TC-002 · 退出后重新进入 Codex 登录入口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-004-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-004 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 登录状态查看 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,状态区域显示已登录信息;2. 预置1个已登录状态和1个可再次登录的 Codex 账号,通过鉴权接口返回状态;3. DSH Web 已加载且 Codex 设置面板可访问。
操作步骤
- 点击「退出登录」按钮
- 在页面中定位「Codex 状态区域」
- 点击「Codex 登录入口」
预期结果
- 页面显示退出后的未登录状态,用户用量入口不显示
- Codex 状态区域显示登录入口,已登录用户信息不显示
- 页面跳转到登录操作区域,未复用退出前的用户状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 登录状态查看 |
Codex 用量状态
FNOS-002-dsh-app-plugin-optimization-TP-005-TC-001 · 刷新后同步五小时和每周 Codex 用量
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-005-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-005 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | Codex Chrome / NAS |
| 执行状态 | 通过 |
| 截图 | 真实 NAS 验收记录 |
前置条件
- 管理员已登录 Codex,鉴权状态显示已登录;2. 预置1条 limit_window_seconds=18000 的五小时窗口和1条每周窗口,通过用量接口返回剩余比例与重置时间;3. DSH Web 已加载,Codex 设置面板、会话输入区和用量接口均可访问。
操作步骤
- 使用已登录 Codex 账号打开「DSH Web→设置→Codex Auth」页面
- 点击页面中的「刷新」操作并等待用量接口返回
- 查看设置面板中的五小时窗口,记录剩余比例与重置时间
- 查看设置面板中的每周窗口和「会话→输入区」用量入口
预期结果
- 页面在鉴权完成后显示 Codex 设置面板和用量区域
- 设置面板与会话输入区显示本次用量接口返回的数据
- 五小时窗口的 limit_window_seconds 显示为 18000,剩余比例与重置时间显示接口返回值
- 设置面板显示每周窗口的剩余比例与重置时间,会话输入区优先显示五小时窗口
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
FNOS-002-dsh-app-plugin-optimization-TP-005-TC-002 · 会话输入区展示刷新后的五小时用量
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-005-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-005 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | Codex Chrome / NAS |
| 执行状态 | 通过 |
| 截图 | 真实 NAS 验收记录 |
前置条件
- 普通 DSH 用户已登录 Codex,鉴权状态显示已登录;2. 预置1条五小时窗口(limit_window_seconds=18000)和1条每周窗口,通过用量接口返回窗口数据;3. DSH Web 已加载并打开「会话→输入区」,刷新入口和 Codex 用量提示可访问。
操作步骤
- 使用已登录 Codex 账号打开「DSH Web→会话→输入区」页面
- 点击「刷新」操作并等待用量接口返回窗口数据
- 查看会话输入区的 Codex 用量提示
- 打开「设置→Codex Auth」页面查看两个窗口信息
预期结果
- 页面显示会话输入区,Codex 用量提示区域可见
- 会话输入区显示刷新接口返回的五小时窗口数据
- 用量提示显示五小时窗口剩余比例与重置时间,窗口秒数为 18000
- 设置面板显示五小时和每周窗口,两个窗口字段与接口返回值相同
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
FNOS-002-dsh-app-plugin-optimization-TP-006-TC-001 · 用量接口缺失字段时保留可观测状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-006-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-006 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1份缺少 limit_window_seconds 的用量响应,通过测试接口返回;3. DSH Web 已加载,设置面板和会话输入区可访问。
操作步骤
- 打开「DSH Web→设置→Codex Auth」页面
- 点击「刷新」操作并等待用量接口返回
- 查看设置面板的用量区域
预期结果
- 页面显示 Codex 设置面板,刷新入口保持可见
- 用量响应缺少窗口字段时,五小时和每周用量不显示伪造数值
- 页面显示可理解的用量不可用状态或保留最后有效快照
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
FNOS-002-dsh-app-plugin-optimization-TP-006-TC-002 · 用量接口类型错误时不写入错误比例
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-006-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-006 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1份剩余比例或重置时间类型错误的用量响应,通过测试接口返回;3. DSH Web 已加载,设置面板和会话输入区可访问。
操作步骤
- 打开「DSH Web→会话→输入区」页面
- 点击「刷新」操作并等待用量接口返回
- 查看会话输入区的 Codex 用量提示
预期结果
- 页面显示会话输入区,Codex 用量提示区域可见
- 类型错误字段不会被渲染为 NaN、undefined 或超范围百分比
- 用量提示显示不可用状态或最后有效值,错误响应不覆盖有效数据
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
FNOS-002-dsh-app-plugin-optimization-TP-006-TC-003 · 用量接口错误时页面不误报刷新结果
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-006-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-006 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1个 HTTP 错误或空数组用量响应,通过测试接口返回;3. DSH Web 已加载,网关和 Codex 状态区域可访问。
操作步骤
- 打开「DSH Web→设置→Codex Auth」页面
- 点击「刷新」操作并等待用量接口返回错误
- 查看设置面板和会话输入区用量区域
预期结果
- 页面显示用量刷新入口和当前已登录状态
- 页面显示刷新失败或用量不可用提示,不显示“刷新完成”之类的误导文案
- 设置面板和会话输入区不显示错误剩余比例,最后有效数据按产品规则保留
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
Codex 用量边界
FNOS-002-dsh-app-plugin-optimization-TP-007-TC-001 · 窗口秒数为17999时不识别为五小时窗口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-007-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-007 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P3 |
| 用例类型 | 边界验证 |
| 测试类别 | 边界 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P3 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量边界 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1条 limit_window_seconds=17999 的窗口数据,通过用量接口返回;3. DSH Web 已加载且设置面板与会话输入区可访问。
操作步骤
- 打开「DSH Web→设置→Codex Auth」页面
- 点击「刷新」操作并等待用量接口返回 limit_window_seconds=17999
- 查看设置面板和会话输入区的窗口提示
预期结果
- 页面显示 Codex 用量区域,刷新入口保持可见
- 接口返回的 17999 秒窗口不被标记为五小时窗口
- 页面不显示五小时专属提示,窗口信息按可识别状态展示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
FNOS-002-dsh-app-plugin-optimization-TP-007-TC-002 · 窗口秒数为18000时识别并展示五小时窗口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-007-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-007 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P3 |
| 用例类型 | 边界验证 |
| 测试类别 | 边界 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P3 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量边界 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1条 limit_window_seconds=18000 的五小时窗口数据,通过用量接口返回;3. DSH Web 已加载且设置面板与会话输入区可访问。
操作步骤
- 打开「DSH Web→设置→Codex Auth」页面
- 点击「刷新」操作并等待用量接口返回 limit_window_seconds=18000
- 查看设置面板和会话输入区的窗口提示
预期结果
- 页面显示 Codex 用量区域,刷新入口保持可见
- 接口返回的 18000 秒窗口显示为五小时窗口
- 页面显示五小时剩余比例与重置时间,会话输入区显示五小时窗口信息
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
FNOS-002-dsh-app-plugin-optimization-TP-007-TC-003 · 窗口秒数为18001时不识别为五小时窗口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-007-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-007 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P3 |
| 用例类型 | 边界验证 |
| 测试类别 | 边界 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P3 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量边界 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1条 limit_window_seconds=18001 的窗口数据,通过用量接口返回;3. DSH Web 已加载且设置面板与会话输入区可访问。
操作步骤
- 打开「DSH Web→会话→输入区」页面
- 点击「刷新」操作并等待用量接口返回 limit_window_seconds=18001
- 查看会话输入区的 Codex 用量提示
预期结果
- 页面显示会话输入区和用量提示区域
- 接口返回的 18001 秒窗口不被标记为五小时窗口
- 会话输入区不显示五小时专属信息,窗口提示保留可识别的窗口类型
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
FNOS-002-dsh-app-plugin-optimization-TP-008-TC-001 · 仅有每周窗口时会话区回退展示每周用量
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-008-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-008 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1条每周窗口响应且不包含 limit_window_seconds=18000,通过用量接口返回;3. DSH Web 已加载并打开「会话→输入区」。
操作步骤
- 打开「DSH Web→会话→输入区」页面
- 点击「刷新」操作并等待用量接口返回每周窗口
- 查看会话输入区的 Codex 用量入口
- 查看入口中的剩余比例和重置时间
预期结果
- 页面显示会话输入区和 Codex 用量入口
- 页面显示本次接口返回的每周窗口数据
- 用量入口显示每周窗口,不显示五小时窗口文案
- 用量入口显示每周剩余比例和重置时间字段
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
FNOS-002-dsh-app-plugin-optimization-TP-008-TC-002 · 仅有每周窗口时设置面板展示完整用量
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-008-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-008 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1条每周窗口响应且不包含 limit_window_seconds=18000,通过用量接口返回;3. DSH Web 已加载,Codex 设置面板可访问。
操作步骤
- 打开「DSH Web→设置→Codex Auth」页面
- 点击「刷新」操作并等待用量接口返回每周窗口
- 查看设置面板中的 Codex 用量卡片
- 查看用量卡片中的窗口字段
预期结果
- 页面显示 Codex 设置面板和用量卡片
- 用量卡片显示本次接口返回的每周窗口数据
- 用量卡片显示每周窗口及其剩余比例
- 用量卡片显示每周窗口的重置时间,不显示五小时窗口卡片
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
FNOS-002-dsh-app-plugin-optimization-TP-009-TC-001 · 未知窗口不被展示为五小时用量
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-009-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-009 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1条未知 limit_window_seconds 的用量响应,通过测试接口返回;3. DSH Web 已加载且设置面板与会话输入区可访问。
操作步骤
- 打开「DSH Web→设置→Codex Auth」页面
- 点击「刷新」操作并等待未知窗口响应返回
- 查看设置面板和会话输入区的五小时用量展示
预期结果
- 页面显示 Codex 用量区域和刷新入口
- 未知窗口被标记为不可识别状态,五小时用量字段不显示伪造数值
- 设置面板和会话输入区均不显示五小时专属剩余比例与重置时间
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
FNOS-002-dsh-app-plugin-optimization-TP-009-TC-002 · 刷新失败时保留有效状态并提示不可用
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-009-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-009 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录 Codex,具有查看用量权限;2. 预置1份最后有效用量快照和1个刷新失败响应,通过测试接口返回;3. DSH Web 已加载且网关与 Codex 状态区域可访问。
操作步骤
- 打开「DSH Web→会话→输入区」页面
- 点击「刷新」操作并等待接口返回失败状态
- 查看会话输入区和设置面板的用量区域
预期结果
- 页面显示会话输入区,刷新入口和最后有效状态可见
- 页面显示刷新失败或用量不可用提示,不显示错误比例和伪造重置时间
- 设置面板与会话输入区显示最后有效快照或明确不可用状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
NAS 引用与 Tree 状态
FNOS-002-dsh-app-plugin-optimization-TP-010-TC-001 · 选择授权文件并插入 structured reference
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-010-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-010 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有目标 NAS 文件的访问授权;2. 预置1个授权文件和1段已有消息文本,通过授权目录接口返回文件节点;3. DSH Web 已加载且会话输入区与 NAS 引用面板可访问。
操作步骤
- 在「会话→输入区」点击「插入 NAS 文件或目录」按钮
- 在 TreeSelect 面板中选择「已授权文件」节点
- 点击 NAS 面板中的「确认插入」按钮
- 查看「消息输入框内容」中的新增引用
预期结果
- 页面显示 TreeSelect 文件目录选择面板
- 目标文件节点显示为选中状态,并显示文件名与路径
- 消息输入框显示该文件的 structured reference
- 消息输入框保留原有文本,新增引用类型和路径字段显示所选文件值
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-010-TC-002 · 在已有消息文本中重复插入授权文件引用
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-010-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-010 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有目标 NAS 文件的访问授权;2. 预置1个授权文件和1段已有消息文本,通过授权目录接口返回文件节点;3. DSH Web 已加载且消息输入框处于可编辑状态。
操作步骤
- 在「会话→输入区」点击「插入 NAS 文件或目录」按钮
- 在 TreeSelect 面板中选择「已授权文件」节点
- 点击「确认插入」按钮完成当前文件引用插入
- 查看「消息输入框内容」中的原文和 structured reference
预期结果
- 页面显示 TreeSelect 文件目录选择面板
- 已授权文件节点显示选中状态,并显示文件名与路径
- 消息输入框增加1个 structured reference,输入框原文仍显示
- 消息输入框同时显示原有文本和当前文件引用,未新增未选择的路径字段
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-011-TC-001 · 未授权文件节点禁止插入引用
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-011-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-011 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 普通 DSH 用户已进入会话但不具有目标 NAS 文件访问授权;2. 预置1个未授权文件节点,通过授权目录接口返回不可选状态;3. DSH Web 已加载且 NAS 引用面板可访问。
操作步骤
- 在「会话→输入区」点击「插入 NAS 文件或目录」按钮
- 在 TreeSelect 面板中选择「已授权文件」所在节点
- 点击「确认插入」按钮
- 查看「消息输入框内容」
预期结果
- 页面显示 NAS TreeSelect 面板和文件节点列表
- 未授权文件节点显示不可选或置灰状态,不显示可插入选中状态
- 页面显示无权限提示,消息输入框不增加 structured reference
- 消息输入框保留原有文本,不显示未授权 NAS 路径
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-011-TC-002 · NAS 目录加载失败时停止插入
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-011-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-011 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 普通 DSH 用户已进入会话并具有目录访问权限;2. 预置1个目录节点和一次授权目录接口失败响应,通过测试接口返回;3. DSH Web 已加载且 NAS 引用面板可访问。
操作步骤
- 在「会话→输入区」点击「插入 NAS 文件或目录」按钮
- 在 TreeSelect 面板中选择「NAS 目录节点」并等待懒加载响应
- 点击「确认插入」按钮
- 查看「消息输入框内容」
预期结果
- 页面显示 NAS TreeSelect 面板和目录节点
- 目录节点显示加载失败或不可用状态,子节点列表不显示错误路径
- 页面显示目录加载失败提示,消息输入框不增加 structured reference
- 消息输入框保留原有文本,未写入空目录引用
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-011-TC-003 · 取消确认后不增加 NAS 引用
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-011-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-011 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 普通 DSH 用户已进入会话并具有目标 NAS 文件访问授权;2. 预置1个授权文件节点和1段已有消息文本,通过授权目录接口返回;3. DSH Web 已加载且 NAS 引用面板可访问。
操作步骤
- 在「会话→输入区」点击「插入 NAS 文件或目录」按钮
- 在 TreeSelect 面板中选择「已授权文件」节点
- 关闭确认插入操作或点击取消按钮
- 查看「消息输入框内容」
预期结果
- 页面显示 NAS TreeSelect 面板
- 授权文件节点显示选中状态并展示文件名与路径
- NAS 面板关闭,未弹出引用插入完成提示
- 消息输入框只显示原有文本,structured reference 数量不增加
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-012-TC-001 · 目录引用不重复添加已有空格
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-012-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-012 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有目标 NAS 目录授权;2. 预置1段以空格结尾的消息文本和1个授权目录节点,通过消息编辑器与授权目录接口创建;3. DSH Web 已加载且 NAS 引用 TreeSelect 可访问。
操作步骤
- 在「消息输入框」中输入「请检查目录 」并保留末尾空格
- 在 NAS TreeSelect 中选择「NAS 目录节点」
- 点击「确认插入」按钮
- 查看「消息输入框」中的目录引用文本
预期结果
- 消息输入框显示文本「请检查目录 」并保留一个末尾空格
- NAS 目录节点显示选中状态并准备插入
- 消息输入框显示新增的目录 structured reference
- 目录引用前不增加第二个空格,原文和引用之间保留单个分隔空格
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-012-TC-002 · 目录引用在无空格文本后补一个空格
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-012-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-012 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 边界验证 |
| 测试类别 | 边界 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有目标 NAS 目录授权;2. 预置1段不以空格结尾的消息文本和1个授权目录节点,通过消息编辑器与授权目录接口创建;3. DSH Web 已加载且 NAS 引用 TreeSelect 可访问。
操作步骤
- 在「消息输入框」中输入不带末尾空格的「请检查目录」
- 在 NAS TreeSelect 中选择「NAS 目录节点」
- 点击「确认插入」按钮
- 查看「消息输入框」中的目录引用文本
预期结果
- 消息输入框显示文本「请检查目录」,末尾未显示空格
- NAS 目录节点显示选中状态并准备插入
- 消息输入框显示新增的目录 structured reference
- 目录引用前增加一个空格,原文和引用之间不出现连续空格
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-013-TC-001 · 未授权节点不增加消息引用
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-013-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-013 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 普通 DSH 用户已进入会话但不具有目标 NAS 节点授权;2. 预置1个未授权节点和1段原有消息文本,通过授权目录接口返回;3. DSH Web 已加载且 NAS 引用面板可访问。
操作步骤
- 在「会话→输入区」点击「插入 NAS 文件或目录」按钮
- 在 TreeSelect 中选择「未授权或加载失败节点」
- 点击「确认插入」按钮
- 查看「消息输入框内容」
预期结果
- 页面显示 NAS TreeSelect 面板并加载节点状态
- 未授权节点显示置灰或不可选状态
- 页面显示无访问权限提示,消息输入框不增加 structured reference
- 消息输入框显示原有文本,不出现未授权 NAS 路径
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-013-TC-002 · 节点加载失败时不插入空引用
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-013-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-013 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 普通 DSH 用户已进入会话并具有 NAS 目录访问权限;2. 预置1个目录节点和一次授权目录加载失败响应,通过测试接口返回;3. DSH Web 已加载且 NAS 引用面板可访问。
操作步骤
- 在「会话→输入区」点击「插入 NAS 文件或目录」按钮
- 在 TreeSelect 中选择「未授权或加载失败节点」并等待节点响应
- 点击「确认插入」按钮
- 查看「消息输入框内容」
预期结果
- 页面显示 NAS TreeSelect 面板并加载目录节点状态
- 加载失败节点显示不可用状态,子节点列表不显示错误路径
- 页面显示加载失败提示,消息输入框不增加 structured reference
- 消息输入框显示原有文本,不出现空引用或错误占位内容
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
FNOS-002-dsh-app-plugin-optimization-TP-014-TC-001 · 删除当前 NAS 引用同步取消 Tree 节点选择
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-014-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-014 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有 NAS 文件访问权限;2. 预置1个历史引用基线、1个本次插入的文件引用和对应 Tree 节点,通过消息编辑器与授权目录接口创建;3. DSH Web 已加载且 NAS TreeSelect 面板已打开。
操作步骤
- 在已打开的 NAS TreeSelect 面板中保留本次插入的文件引用
- 在「消息输入框」中删除本次插入的结构化文件引用
- 查看删除后的「消息输入框」内容
- 查看「NAS TreeSelect 目标节点」选中状态
预期结果
- 页面显示本次引用对应的 Tree 节点选中状态,历史引用基线保留
- 消息输入框减少1个本次结构化文件引用,其他文本和历史引用保留
- 消息输入框不显示被删除的当前文件引用
- NAS TreeSelect 目标节点变为未选中,历史引用对应节点保持原选中状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
FNOS-002-dsh-app-plugin-optimization-TP-014-TC-002 · 删除当前引用时保留其他输入内容和 Tree 状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-014-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-014 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有 NAS 文件访问权限;2. 预置1段文本、1个历史 NAS 引用和1个本次插入的文件引用,通过消息编辑器与授权目录接口创建;3. DSH Web 已加载且 NAS TreeSelect 面板已打开。
操作步骤
- 在 NAS TreeSelect 面板中查看当前引用与历史引用节点
- 在「消息输入框」中删除本次插入的当前结构化引用
- 查看「消息输入框」中保留的文本和历史引用
- 查看「NAS TreeSelect 目标节点」的选中状态
预期结果
- 页面显示当前引用节点和历史引用节点的选中状态
- 消息输入框减少当前引用,文本和历史结构化引用仍显示
- 消息输入框不新增空引用或未选择路径
- 当前引用对应节点变为未选中,历史引用对应节点保持选中状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
FNOS-002-dsh-app-plugin-optimization-TP-015-TC-001 · 当前引用删除后同步取消 Tree 选中状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-015-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-015 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有 NAS 文件访问权限;2. 预置1个本次插入的文件引用和对应 Tree 节点,通过消息编辑器与授权目录接口创建;3. DSH Web 已加载且 NAS TreeSelect 面板保持打开。
操作步骤
- 在已打开的 NAS TreeSelect 面板中查看本次插入的文件节点
- 在「消息输入框」中删除本次结构化文件引用
- 查看输入框中删除后的当前引用
- 查看 NAS TreeSelect 中目标节点的选中状态
预期结果
- 页面显示目标 Tree 节点处于选中状态
- 消息输入框减少本次结构化文件引用
- 输入框不显示被删除的当前引用,其他文本继续显示
- NAS TreeSelect 目标节点变为未选中
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
FNOS-002-dsh-app-plugin-optimization-TP-015-TC-002 · 删除引用后重新打开面板不恢复已删除节点
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-015-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-015 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有 NAS 文件访问权限;2. 预置1个本次插入文件引用,通过消息编辑器创建并记录删除后的输入版本;3. DSH Web 已加载且 NAS TreeSelect 可关闭和重新打开。
操作步骤
- 在「消息输入框」中删除本次结构化文件引用
- 关闭 NAS TreeSelect 面板后重新打开引用面板
- 查看重新加载的目标文件节点
- 查看「消息输入框」中的当前引用
预期结果
- 消息输入框减少本次结构化文件引用
- NAS TreeSelect 面板重新显示节点列表
- 目标文件节点显示未选中状态,不从已删除引用恢复选中
- 消息输入框不显示该结构化引用,输入版本保持最新
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
FNOS-002-dsh-app-plugin-optimization-TP-015-TC-003 · 连续删除当前引用不重复取消其他节点
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-015-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-015 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- DSH 用户已登录会话并具有 NAS 文件访问权限;2. 预置2个本次插入的文件引用和对应 Tree 节点,通过消息编辑器与授权目录接口创建;3. DSH Web 已加载且 NAS TreeSelect 面板保持打开。
操作步骤
- 在 NAS TreeSelect 面板中查看两个本次引用对应的选中节点
- 在「消息输入框」中删除第一个当前结构化引用
- 在「消息输入框」中删除第二个当前结构化引用
- 查看两个目标节点的选中状态
预期结果
- 页面显示两个目标节点均处于选中状态
- 输入框减少第一个当前引用,第一个节点变为未选中
- 输入框减少第二个当前引用,第二个节点变为未选中
- TreeSelect 不显示残留选中节点,也不取消历史基线节点
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
FNOS-002-dsh-app-plugin-optimization-TP-016-TC-001 · 删除本次插入的文件引用并同步取消 TreeSelect 节点
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-016-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-016 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P3 |
| 用例类型 | 边界验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P3 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与删除引用权限;2. 预置一个可选 NAS 文件,打开 TreeSelect 后完成一次文件引用插入,并保留其他文本;3. DSH Web 会话输入区和 NAS TreeSelect 已加载,选择状态同步接口可访问。
操作步骤
- 打开 DSH Web 的「会话→输入区」并打开 NAS TreeSelect
- 选择一个此前未在面板基线中的 NAS 文件并点击插入
- 在消息输入框中删除本次插入的结构化文件引用
- 重新打开 NAS TreeSelect 并定位该文件节点
预期结果
- NAS 文件引用插入到消息输入框,其他已有文本保持显示
- 删除操作后消息输入框不再显示该结构化文件引用,其他文本和历史引用保持显示
- NAS TreeSelect 中对应文件节点变为未选中状态,节点展示与输入框中保留的内容相同
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 [术语不一致: 统一为 打开「的 NAS TreeSelec」] [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
FNOS-002-dsh-app-plugin-optimization-TP-016-TC-002 · 删除当前引用时保留历史引用和其他输入内容
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-016-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-016 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P3 |
| 用例类型 | 边界验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P3 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与删除引用权限;2. 预置同一路径的历史引用与本次新插入引用,并在输入框中放置普通文本;3. DSH Web 会话输入区已加载,NAS TreeSelect 可展示历史与当前选择状态。
操作步骤
- 打开包含历史引用和本次引用的消息输入框
- 选中并删除本次操作插入的目标结构化引用
- 打开 NAS TreeSelect 查看目标文件节点和其他节点
预期结果
- 消息输入框删除目标当前引用后,普通文本和历史引用仍然显示
- 目标文件节点显示为未选中状态,历史引用对应节点的选中状态保持显示
- TreeSelect 展示的节点选择结果与消息输入框中保留的引用对应
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 [术语不一致: 统一为 打开「的 NAS TreeSelec」] |
FNOS-002-dsh-app-plugin-optimization-TP-017-TC-001 · 删除历史 NAS 引用时保留当前 TreeSelect 节点选择
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-017-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-017 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置输入框中的历史 NAS 引用,并在打开面板后选择另一个 NAS 节点形成当前选择;3. DSH Web 会话输入区和 NAS TreeSelect 已加载,引用 occurrence 状态可追踪。
操作步骤
- 打开包含历史 NAS 引用的会话输入区
- 打开 NAS TreeSelect 并选择一个新的 NAS 文件节点
- 在输入框中删除面板打开前生成的历史 NAS 引用
- 重新查看 NAS TreeSelect 中新选择的节点
预期结果
- 输入框显示历史引用和当前选择对应的结构化引用
- 删除历史引用后,输入框移除该历史 occurrence,当前选择对应的引用仍显示
- NAS TreeSelect 中当前选择的节点仍显示为选中状态,未出现错误取消选择
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 [术语不一致: 统一为 打开「的 NAS TreeSelec」] |
FNOS-002-dsh-app-plugin-optimization-TP-017-TC-002 · 删除历史引用时保留同路径其他 occurrence
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-017-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-017 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置同一路径的两个 NAS 引用 occurrence,其中一个属于历史基线,另一个属于当前操作,并保留普通文本;3. DSH Web 会话输入区已加载,TreeSelect 可显示该路径节点的选中状态。
操作步骤
- 打开已包含两个同路径引用 occurrence 的会话输入区
- 选中并删除属于历史基线的 NAS 引用 occurrence
- 查看输入框中的剩余引用并打开 NAS TreeSelect
预期结果
- 删除操作仅移除历史 occurrence,普通文本和同路径的其他 occurrence 仍显示
- TreeSelect 中该路径节点继续显示为选中状态
- 输入框剩余结构化引用与 TreeSelect 的节点选中状态均保持显示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
FNOS-002-dsh-app-plugin-optimization-TP-018-TC-001 · 删除同路径的一个 occurrence 只取消对应节点关系
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-018-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-018 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置同一路径、不同 occurrence 标识的两个结构化引用,并为两个 occurrence 建立 TreeSelect 关系;3. DSH Web 会话输入区和 NAS TreeSelect 已加载,draftRev 同步可用。
操作步骤
- 打开包含同路径两个 occurrence 的会话输入区
- 在消息输入框中选中第一个 occurrence 并执行删除
- 打开 NAS TreeSelect 查看同路径节点的选择状态
预期结果
- 输入框移除第一个 occurrence,第二个 occurrence 的引用文本仍显示
- 删除事件按 occurrence 和 draftRev 定位到第一个关系
- 第一个 occurrence 对应节点关系被取消,第二个 occurrence 对应节点仍显示选中状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 [术语不一致: 统一为 打开「已包含两个同路径引用 occu」] |
FNOS-002-dsh-app-plugin-optimization-TP-018-TC-002 · 保留同路径 occurrence 的引用和节点选中状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-018-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-018 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置一个 NAS 路径的两个 occurrence 引用,分别记录不同 occurrence 标识,并保存 TreeSelect 选中关系;3. DSH Web 会话输入区已加载,消息引用删除和 TreeSelect 状态同步可用。
操作步骤
- 打开包含同路径两个 occurrence 的会话输入区
- 删除其中一个 occurrence 后返回消息输入框
- 打开 NAS TreeSelect 并查看剩余 occurrence 对应的节点
预期结果
- 消息输入框仅移除被删除 occurrence,另一个同路径结构化引用仍显示
- TreeSelect 中剩余 occurrence 对应节点继续显示选中状态
- 页面未显示另一个 occurrence 被删除或取消选择的提示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 [术语不一致: 统一为 打开「已包含两个同路径引用 occu」] |
FNOS-002-dsh-app-plugin-optimization-TP-019-TC-001 · 同路径不同 occurrence 删除边界下只取消目标节点
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-019-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-019 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P3 |
| 用例类型 | 边界验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P3 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置同一路径的两个不同 occurrence 引用,并使两个引用都处于 TreeSelect 选中状态;3. DSH Web 会话输入区已加载,TreeSelect 关系和 draftRev 数据可读取。
操作步骤
- 打开包含同路径两个 occurrence 的消息输入框
- 选择第一个 occurrence 并执行删除操作
- 打开 NAS TreeSelect 查看同路径关联节点的状态
预期结果
- 输入框仅移除指定 occurrence,另一个 occurrence 文本仍显示
- 删除事件按 occurrence 和 draftRev 找到目标节点关系
- 目标节点变为未选中状态,另一个同路径节点继续显示选中状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 [术语不一致: 统一为 打开「已包含两个同路径引用 occu」] |
FNOS-002-dsh-app-plugin-optimization-TP-019-TC-002 · 同路径 occurrence 删除后保留引用状态不被误清除
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-019-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-019 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P3 |
| 用例类型 | 边界验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P3 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置同一路径、不同 occurrence 标识的两个引用,并记录各自 TreeSelect 关系;3. DSH Web 会话输入区已加载,消息引用删除操作可触发选择状态更新。
操作步骤
- 打开含有两个同路径 occurrence 的会话输入区
- 删除其中一个 occurrence 并返回输入框
- 重新打开 NAS TreeSelect 查看剩余 occurrence 对应节点
预期结果
- 页面显示剩余 occurrence 的结构化引用,目标 occurrence 不再显示
- TreeSelect 只取消目标 occurrence 对应关系
- 剩余 occurrence 对应节点继续显示选中状态,页面未显示其被删除
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 [术语不一致: 统一为 打开「已包含两个同路径引用 occu」] |
Semi UI 总览
FNOS-002-dsh-app-plugin-optimization-TP-020-TC-001 · 从插件入口打开 Semi UI 总览并浏览组件
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-020-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-020 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Semi UI 总览→Semi UI 总览浏览 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有打开插件总览的访问权限;2. 预置 DSH Semi UI 插件已安装、启用并配置至少一个可展示组件;3. DSH Web 已启动,插件入口和 #/plugins/semi-ui 路由可访问。
操作步骤
- 打开 DSH 设置中的插件列表并定位「DSH Semi UI」
- 点击「打开总览」按钮并等待页面加载完成
- 查看左侧组件菜单并点击一个已启用组件菜单项
- 查看主区域的组件预览、状态示例和代码示例
预期结果
- 页面跳转到 #/plugins/semi-ui 独立总览页面
- 左侧菜单仅显示已启用且存在展示页面的组件,菜单图标显示为对应官方分类图标
- 主区域显示所选组件的官方文档式示例、状态和代码内容
- 组件预览与代码示例上下对应,示例操作可触发对应交互且页面未显示菜单错配
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 [术语不一致: 统一为 打开「DSH 设置中的插件列表并点」] |
FNOS-002-dsh-app-plugin-optimization-TP-020-TC-002 · 切换 Semi UI 组件菜单时保持预览与代码对应
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-020-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-020 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Semi UI 总览→Semi UI 总览浏览 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有 Semi UI 总览访问权限;2. 预置至少两个已启用且有展示页面的 Semi 组件;3. DSH Semi UI 总览已加载,页面可进行组件菜单切换且代码示例资源可访问。
操作步骤
- 在 Semi UI 总览左侧点击第一个已启用组件菜单项
- 查看该组件的预览区域和下方代码示例
- 点击另一个已启用组件菜单项
- 查看切换后组件的预览区域和下方代码示例
预期结果
- 主区域显示第一个组件的预览和对应代码内容
- 预览下方显示与第一个组件对应的代码示例,示例状态可操作
- 主区域变为第二个组件的官方文档式展示内容
- 第二个组件的预览、状态和代码示例保持对应,页面未出现上一个组件的菜单或代码
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
FNOS-002-dsh-app-plugin-optimization-TP-021-TC-001 · Semi UI 组件依赖缺失时隐藏不可用组件菜单
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-021-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-021 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Semi UI 总览→Semi UI 总览浏览 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有插件总览访问权限;2. 预置 Semi UI 插件中一个组件依赖缺失,其他组件依赖完整;3. DSH Web 与 Semi UI 总览路由已启动,组件能力探测接口可访问。
操作步骤
- 打开 DSH 设置中的插件列表并点击「DSH Semi UI→打开总览」
- 等待 Semi UI 总览完成组件能力探测
- 查看左侧组件菜单并定位依赖缺失的组件
预期结果
- 页面跳转到 #/plugins/semi-ui,主区域显示 Semi UI 总览
- 左侧菜单不显示依赖缺失且没有展示页面的组件
- 其他依赖完整的组件菜单仍显示,页面未出现空白预览或错误堆栈
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
FNOS-002-dsh-app-plugin-optimization-TP-021-TC-002 · 直接访问 Semi UI Hash 路由时恢复总览页面
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-021-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-021 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Semi UI 总览→Semi UI 总览浏览 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有插件总览访问权限;2. 预置 DSH Semi UI 插件已启用,至少两个组件展示页面资源可用;3. DSH Web 已启动,浏览器支持直接访问并刷新 #/plugins/semi-ui 路由。
操作步骤
- 在浏览器地址栏输入 DSH Web 的 #/plugins/semi-ui 路由并打开
- 等待总览页面资源加载完成
- 刷新浏览器页面并再次查看左侧菜单和主区域
预期结果
- 页面显示 Semi UI 总览标题和左侧组件菜单
- 刷新后页面仍跳转并显示 #/plugins/semi-ui 对应总览内容
- 已启用组件菜单与主区域示例继续显示,页面未跳转到 DSH 错误页
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
FNOS-002-dsh-app-plugin-optimization-TP-021-TC-003 · 卸载 Semi UI 插件后总览入口与菜单同步移除
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-021-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-021 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | Semi UI 总览→Semi UI 总览浏览 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 管理员用户且具备插件卸载权限;2. 预置 DSH Semi UI 插件已安装并在插件列表显示总览入口;3. DSH Web 插件管理页已加载,卸载操作和列表刷新接口可访问。
操作步骤
- 打开 DSH 设置中的插件列表并定位「DSH Semi UI」
- 执行卸载操作并等待插件列表刷新
- 查看插件列表入口和浏览器中的 Semi UI 总览路由
预期结果
- 插件列表完成卸载后不再显示 DSH Semi UI 的打开总览入口
- 直接访问原 Semi UI 路由时页面显示不可用或返回上一层 DSH 页面
- 其他插件菜单和 DSH 外层页面继续显示,未出现全局页面崩溃
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 [术语不一致: 统一为 打开「DSH 设置中的插件列表并点」] |
FNOS-002-dsh-app-plugin-optimization-TP-022-TC-001 · 切换 Semi UI 主题时同步更新组件预览样式
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-022-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-022 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Semi UI 总览→主题与路由交互 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有 Semi UI 总览访问权限;2. 预置至少两个已启用的 Semi 组件展示页面;3. Semi UI 总览已打开,主题切换控件和组件主题变量已加载。
操作步骤
- 在 Semi UI 总览中打开第一个组件展示页面
- 点击「主题切换」控件切换到目标主题
- 查看文档外壳、组件预览和代码展示区域
预期结果
- 组件展示页面显示目标主题的文档外壳
- 组件预览背景、文字、边框和交互状态变为目标主题对应颜色
- 代码展示区域继续显示当前组件示例,页面未出现主题变量缺失提示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
FNOS-002-dsh-app-plugin-optimization-TP-022-TC-002 · 前进后退和刷新后保持 Semi UI 当前组件路由
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-022-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-022 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Semi UI 总览→主题与路由交互 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有 Semi UI 总览访问权限;2. 预置两个已启用且有展示页面的组件;3. Semi UI 总览已打开,浏览器历史记录可用,组件页面资源可访问。
操作步骤
- 点击第一个组件菜单项并等待其展示页面加载
- 点击第二个组件菜单项并等待 Hash 路由更新
- 点击浏览器后退按钮,再点击浏览器前进按钮
- 刷新浏览器页面并查看当前组件展示内容
预期结果
- 地址栏 Hash 路由变为第一个组件页面并显示对应预览
- 地址栏 Hash 路由变为第二个组件页面并显示对应预览
- 后退显示第一个组件页面,前进恢复第二个组件页面
- 刷新后地址栏仍保留当前 Semi UI 组件路由,预览和代码示例继续显示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
FNOS-002-dsh-app-plugin-optimization-TP-023-TC-001 · 点击左侧返回按钮回到 DSH 设置来源页面
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-023-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-023 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Semi UI 总览→关闭与返回 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有设置和插件总览访问权限;2. 预置 DSH Semi UI 插件已安装启用,插件卡片可打开总览;3. DSH 设置插件列表和 Semi UI 总览页面均已加载,浏览器历史状态可用。
操作步骤
- 在 DSH 设置插件列表中点击 DSH Semi UI 的「打开总览」按钮
- 等待 Semi UI 总览页面完成加载
- 点击页面左侧「返回」按钮
- 查看当前地址栏路由和 DSH 设置内容
预期结果
- 页面显示 Semi UI 总览内容和组件菜单
- 点击返回后页面跳转到进入总览前的 DSH 设置插件列表
- DSH 设置页面显示原插件列表内容,页面未出现空白区域或错误堆栈
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
FNOS-002-dsh-app-plugin-optimization-TP-023-TC-002 · 关闭 Semi UI 总览后返回来源页面并保持外层可操作
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-023-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-023 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Semi UI 总览→关闭与返回 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有设置和插件总览访问权限;2. 预置 DSH Semi UI 插件已安装启用,来源页面为 DSH 设置插件列表;3. Semi UI 总览已打开,组件资源加载完成,DSH 外层页面路由可恢复。
操作步骤
- 从 DSH 设置插件卡片再次打开 Semi UI 总览
- 在总览页面点击右侧「关闭总览」按钮
- 查看返回后的 DSH 外层页面并操作一个设置项
预期结果
- 页面再次显示 Semi UI 总览和当前组件内容
- 关闭操作后页面跳转到来源 DSH 设置页面,未使用右侧 close 符号承担返回语义
- DSH 外层页面的设置项仍可点击操作,页面未显示空白崩溃页
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 [术语不一致: 统一为 打开「Semi UI 总览并记录来」] |
FPK 网关、恢复与 API 反代
FNOS-002-dsh-app-plugin-optimization-TP-024-TC-001 · 通过左侧入口仅重启 DSH Web 并恢复页面
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-024-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-024 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | Codex Chrome / NAS |
| 执行状态 | 通过 |
| 截图 | 真实 NAS 验收记录 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置运行中的 DSH Web、网关和 FPK 应用,记录当前 Web PID、profile 和凭据;3. 左侧重启入口已显示,网关监听地址与 app/ui/config socket 可访问。
操作步骤
- 打开 DSH Web 左侧菜单并点击「重启」按钮
- 等待按钮处理状态结束并等待 Web 健康检查完成
- 打开 DSH Web 页面查看会话和设置内容
- 查看网关进程、监听地址和 FPK 应用状态
预期结果
- 重启按钮变为处理中状态并发起 DSH Web 子进程重启
- 旧 Web 子进程退出后新 PID 通过健康检查,页面自动恢复显示
- 网关进程和 app/ui/config socket 持续可用,网关 PID 未发生重启
- FPK 应用状态显示启用,profile、用户配置和凭据继续保留
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-024-TC-002 · 重启 DSH Web 后保留应用启用状态和用户数据
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-024-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-024 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | Codex Chrome / NAS |
| 执行状态 | 通过 |
| 截图 | 真实 NAS 验收记录 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置 FPK 应用为启用状态,并记录 profile、工作区、插件配置和凭据快照;3. DSH Web 恢复页面可访问,网关和 FPK 状态查询接口可用。
操作步骤
- 查看并记录 FPK 应用启用状态和当前 DSH Web PID
- 点击左侧「重启」按钮并等待页面恢复
- 重新打开设置、工作区和插件配置页面
- 查看 FPK 应用状态与网关监听信息
预期结果
- 页面显示 FPK 应用处于启用状态,并显示当前 Web PID
- DSH Web 页面恢复显示,新的 Web PID 与重启前记录不同
- 设置、工作区和插件配置内容继续显示,用户凭据未被清除
- 网关监听地址和 app/ui/config socket 继续可访问,应用状态仍显示启用
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-025-TC-001 · 重复点击重启时只保留一次 DSH Web 重启任务
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-025-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-025 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 并发 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置正在运行的 DSH Web、网关和启用状态的 FPK 应用;3. 左侧重启按钮可见,系统可记录 Web 子进程 PID 和网关 PID。
操作步骤
- 连续点击左侧「重启」按钮两次
- 查看按钮处理状态和页面提示
- 等待 Web 健康检查完成并查看 Web、网关进程数量
预期结果
- 首次点击后重启按钮进入处理中状态,后续点击不创建第二个重启任务
- 页面显示单次重启的处理中或已完成提示
- 健康检查结束后仅保留一个可访问的 DSH Web 实例,网关进程 PID 未改变
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-025-TC-002 · DSH Web 健康检查超时时展示恢复错误状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-025-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-025 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置 Web 子进程启动后健康检查超时,网关进程和 FPK 应用仍在运行;3. 左侧重启入口已加载,恢复页可访问并能显示健康检查结果。
操作步骤
- 点击左侧「重启」按钮发起 DSH Web 重启
- 等待超过配置的健康检查超时时间
- 查看页面提示、Web 子进程状态和网关监听地址
预期结果
- 重启按钮显示处理中状态并等待健康检查
- 超时后页面显示明确的 Web 恢复失败提示,按钮恢复可操作状态
- 网关监听地址和 app/ui/config socket 继续可访问,页面未把网关进程当作 Web 子进程重复启动
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-025-TC-003 · DSH Web 重启异常时保持 FPK 应用启用和配置数据
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-025-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-025 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置 FPK 应用为启用状态,并保存 profile、工作区、插件配置和凭据快照;3. DSH Web 重启接口可访问,Web 子进程模拟启动失败,配置存储可读取。
操作步骤
- 点击左侧「重启」按钮触发 Web 子进程启动失败场景
- 等待页面显示恢复结果
- 打开 FPK 应用状态、profile 和插件配置页面
预期结果
- 页面显示 Web 启动失败或恢复失败提示,页面未显示健康状态
- FPK 应用状态继续显示启用
- profile、工作区、插件配置和凭据内容继续显示,网关进程保持运行
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-026-TC-001 · 重启处理中重复点击时阻止并发 Web 实例
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-026-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-026 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 并发 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置网关运行中且 DSH Web 已发起一次重启,健康检查尚未结束;3. 左侧重启按钮和启动锁状态可读取,系统支持查看 Web PID 数量。
操作步骤
- 在 DSH Web 重启处理中点击左侧「重启」按钮
- 立即再次点击左侧「重启」按钮
- 等待当前健康检查完成并查看页面和进程状态
预期结果
- 第一次点击创建一个 Web 重启任务,按钮显示处理中状态
- 第二次点击被禁用或页面显示正在重启提示,未创建第二个 Web 实例
- 健康检查完成后启动锁被释放,页面可访问且系统仅保留一个健康 Web PID
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-026-TC-002 · 重启任务完成后仅更新一次 DSH Web PID
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-026-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-026 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 并发 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置重启前 Web PID、运行中的网关 PID 和 DSH Web 健康检查接口;3. 重启按钮已加载,系统日志或状态接口可读取启动锁与 PID 变化。
操作步骤
- 记录当前 DSH Web PID 和网关 PID
- 点击左侧「重启」按钮并等待页面恢复
- 查看启动锁、Web PID、网关 PID 和恢复日志
预期结果
- 页面显示重启处理中状态,网关 PID 保持显示
- 健康检查通过后 Web PID 从旧值变为一个新值
- 启动锁显示已释放,Web PID 未发生第二次更新,网关 PID 未改变
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-026-TC-003 · 并发重启请求结束后恢复单实例页面
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-026-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-026 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 并发 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置两个快速连续到达的重启请求、正常运行网关和可健康检查的 Web 启动配置;3. DSH Web 恢复页面已打开,状态接口可显示任务结果和实例数量。
操作步骤
- 通过左侧重启按钮连续提交两个重启请求
- 等待页面显示重启任务结果
- 打开 DSH Web 页面并查看网关与 Web 实例状态
预期结果
- 页面只显示一个有效重启任务,第二个请求显示被忽略或等待提示
- 页面显示一个重启结果和已恢复状态
- DSH Web 页面可访问且只保留一个健康实例,网关继续提供监听服务
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 [术语不一致: 统一为 打开「DSH Web 左侧菜单并点」] |
FNOS-002-dsh-app-plugin-optimization-TP-027-TC-001 · DSH Web 启动失败时显示恢复失败提示
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-027-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-027 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置网关正常运行,并将 DSH Web 启动配置设置为启动失败;3. 左侧重启按钮已显示,健康检查和 FPK 状态接口可访问。
操作步骤
- 点击左侧「重启」按钮发起 Web 重启
- 等待健康检查达到失败条件
- 查看页面提示和重启按钮状态
预期结果
- 页面显示重启处理中状态并开始健康检查
- 健康检查结果显示启动失败,页面未显示重启完成提示
- 页面显示可理解的恢复失败或重试提示,重启按钮恢复可操作状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-027-TC-002 · 健康检查超时后保留网关和最后有效 PID
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-027-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-027 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置运行中的网关和最后有效 DSH Web PID,并使新 Web 健康检查超时;3. DSH Web 恢复页已加载,网关 PID、启动锁和 Web PID 可查询。
操作步骤
- 记录网关 PID、最后有效 Web PID 和启动锁状态
- 点击左侧「重启」按钮并等待健康检查超时
- 查看网关进程、启动锁和 DSH Web PID
预期结果
- 页面显示重启处理中状态,启动锁进入占用状态
- 健康检查超时后页面显示失败结果,最后有效 Web PID 未被临时 PID 覆盖
- 网关 PID 保持不变,启动锁显示已释放,网关继续提供监听服务
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-027-TC-003 · 重启失败后保持 FPK 应用启用和配置内容
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-027-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-027 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的 fnOS 用户;2. 预置 FPK 应用为启用状态,并保存 profile、工作区和插件配置快照;3. DSH Web 健康检查会超时,配置存储和 FPK 状态接口可访问。
操作步骤
- 点击左侧「重启」按钮并等待页面显示恢复失败
- 打开 FPK 应用详情和 DSH 配置页面
- 查看应用状态、profile、工作区和插件配置
预期结果
- 页面显示恢复失败或重试提示
- FPK 应用状态继续显示启用
- profile、工作区和插件配置继续显示,页面未清空已保存内容
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
FNOS-002-dsh-app-plugin-optimization-TP-028-TC-001 · 保存插件 API URL 路径规则并立即反代请求
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-028-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-028 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置编辑权限的管理员用户;2. 预置已安装的目标插件、可写的配置目录和可访问的目标上游服务;3. API URL 配置页已打开,网关正在运行且可读取 gateway/path-allowlist.json。
操作步骤
- 在 API URL 配置页输入插件名、路径前缀和目标上游地址
- 点击保存并等待页面提示配置已写入
- 查看 ${TRIM_PKGVAR}/gateway/path-allowlist.json 中的新规则
- 发起使用新路径前缀的插件 HTTP API 请求
预期结果
- 配置页显示插件名、路径前缀和目标上游输入值
- 保存后页面显示规则已写入,allowlist 文件增加对应配置
- allowlist 中记录目标插件、路径前缀和上游地址
- 新请求立即通过网关反代到目标上游,网关未重启且请求返回上游响应
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-028-TC-002 · 已打开页面接收 API URL 路径规则更新
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-028-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-028 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置编辑权限的管理员用户;2. 预置已打开的插件页面、旧路径规则和可访问的新目标上游;3. 网关运行中,配置变更监听和页面通知通道可用。
操作步骤
- 打开目标插件页面并记录当前 API URL 路径规则
- 在另一个配置页面保存新的插件 API URL 路径前缀
- 返回已打开的目标插件页面并发起新 API 请求
预期结果
- 目标插件页面显示旧路径规则和可用状态
- 保存后已打开页面收到新规则通知,页面显示新的路径前缀
- 新 API 请求使用新的路径前缀并返回目标上游数据,页面未要求重启网关
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 [术语不一致: 统一为 打开「目标插件页面并记录当前 API」] |
FNOS-002-dsh-app-plugin-optimization-TP-029-TC-001 · 保存非法 API URL 路径规则时阻止写入
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-029-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-029 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 输入校验 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置编辑权限的管理员用户;2. 预置已安装目标插件,配置目录可写,allowlist 中存在一份最后有效规则;3. API URL 配置页已打开,表单校验和错误提示可用。
操作步骤
- 在 API URL 配置页输入缺少插件名的路径规则
- 点击保存按钮
- 查看页面提示和 allowlist 配置文件内容
预期结果
- 页面显示缺少必填字段或路径格式错误提示
- 保存操作被阻止,页面未显示规则写入完成提示
- allowlist 文件继续保留最后有效规则,网关未加载非法路径
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-029-TC-002 · allowlist 配置文件损坏时保留最后有效反代规则
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-029-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-029 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置查看权限的用户;2. 预置 allowlist 配置文件包含最后有效规则,并准备一份非法 JSON 内容;3. 网关运行中,文件监听和配置重新加载机制已启用。
操作步骤
- 将非法 JSON 内容写入 gateway/path-allowlist.json
- 等待网关监听到配置文件变化
- 发起使用最后有效路径前缀的插件 API 请求
- 查看网关日志和页面配置状态
预期结果
- 网关记录配置解析失败提示,页面显示配置加载错误状态
- 最后有效路径规则继续保留在网关内存配置中
- 插件 API 请求仍按最后有效规则反代并返回上游数据
- 网关进程保持运行,页面未加载非法规则
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-029-TC-003 · API URL 目标上游不可用时展示请求错误
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-029-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-029 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置编辑权限的管理员用户;2. 预置合法插件路径规则但目标上游服务停止,网关和 DSH Web 正在运行;3. API URL 配置页及插件 API 请求页面已打开,网关错误响应可观测。
操作步骤
- 保存指向已停止上游服务的插件 API URL 规则
- 从插件页面发起新 API 请求
- 查看 HTTP 响应、页面提示和网关进程状态
预期结果
- 配置页显示合法路径规则已保存
- API 请求返回可识别的上游连接错误状态,页面显示请求失败提示
- 网关进程继续运行,其他已配置路径未被删除
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-030-TC-001 · 放弃 API URL 编辑后恢复最后有效规则
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-030-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-030 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置编辑权限的管理员用户;2. 预置一份可用 allowlist 规则,记录插件路径前缀和目标上游地址;3. API URL 编辑页已打开,放弃操作和网关规则查询接口可用。
操作步骤
- 查看并记录最后一次有效的插件路径前缀和上游地址
- 在插件 API URL 路径字段输入「/new-api」
- 点击「放弃」按钮
- 发起使用原路径前缀的插件 API 请求并查看配置状态
预期结果
- 页面显示最后一次有效路径前缀和上游地址
- 编辑区显示临时路径「/new-api」,allowlist 文件内容未发生写入
- 编辑状态关闭,临时路径「/new-api」从表单中移除
- 网关继续使用原路径前缀反代请求,配置状态未出现「/new-api」规则
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-030-TC-002 · 放弃编辑时不改变正在使用的网关上游地址
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-030-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-030 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置编辑权限的管理员用户;2. 预置可用插件路径规则和目标上游地址,并记录最后有效配置;3. API URL 编辑区已加载,网关反代请求和配置快照接口可访问。
操作步骤
- 打开插件 API URL 编辑区并输入新的路径前缀和上游地址
- 查看编辑区中的临时值
- 点击「放弃」按钮并关闭编辑区
- 发起插件 API 请求并查看网关使用的路径和上游
预期结果
- 编辑区显示新的临时路径和上游地址,保存前有效快照仍保留
- 点击放弃后页面关闭编辑状态,临时路径和临时上游地址不再显示
- 网关请求继续使用最后有效路径前缀和上游地址,未出现临时配置
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-031-TC-001 · 非法 allowlist 配置不覆盖最后有效快照
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-031-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-031 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置查看权限的用户;2. 预置 path-allowlist.json 有一份可用规则,并准备非法 JSON 和缺少路径字段的配置;3. 网关正在运行,fs.watch 监听和配置校验流程已启用。
操作步骤
- 发起使用最后有效路径前缀的插件 API 请求
- 将非法 JSON 写入 path-allowlist.json
- 等待网关处理文件变更并查看配置状态
- 再次发起原路径前缀的插件 API 请求
预期结果
- 原路径前缀请求返回目标上游响应
- 网关检测到文件变化并显示配置解析失败或字段缺失提示
- 运行中的规则继续保留最后有效快照,非法内容未替换内存配置
- 原路径前缀请求继续返回目标上游响应,网关未退出
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-031-TC-002 · 不完整 allowlist 规则触发回退并保持既有请求
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-031-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-031 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置查看权限的用户;2. 预置包含插件名、路径前缀和上游地址的有效规则,并准备缺少上游字段的配置;3. 网关和插件页面已加载,配置回退状态和请求响应可观测。
操作步骤
- 将缺少上游字段的 JSON 写入 path-allowlist.json
- 等待文件监听完成校验
- 查看页面配置状态并发起既有插件 API 请求
预期结果
- 页面显示 allowlist 规则字段校验错误
- 网关保留最后一次有效快照,运行中路径规则未被替换
- 既有插件 API 请求仍按有效路径反代,页面显示目标上游数据
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
FNOS-002-dsh-app-plugin-optimization-TP-032-TC-001 · HTTP 插件 API 通过公开路径正确反代
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-032-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-032 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 集成 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件 API 的 DSH 用户;2. 预置有效插件路径规则、运行中的网关和 127.0.0.1:3080 HTTP 上游服务;3. 插件公开路径、HTTP API 和响应日志可访问。
操作步骤
- 查看插件路径规则和目标上游地址
- 通过插件公开路径发起一个 HTTP API 请求
- 查看 HTTP 响应状态码、JSON 响应体和请求路径
预期结果
- 页面或配置显示公开路径映射到目标上游
- HTTP 请求返回上游状态码和 JSON 响应体
- 网关日志显示请求只拼接一次路径前缀,响应头保留必要字段
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-032-TC-002 · 静态图片通过公开路径返回正确 Content-Type
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-032-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-032 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P0 |
| 用例类型 | 正向验证 |
| 测试类别 | 集成 |
| 是否冒烟 | 是 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | Codex Chrome / NAS |
| 执行状态 | 通过 |
| 截图 | 真实 NAS 验收记录 |
前置条件
- 已登录可访问插件静态资源的 DSH 用户;2. 预置有效插件路径规则、可访问的 image/png 文件和运行中的网关;3. 浏览器开发者工具或 HTTP 客户端可查看响应头和图片二进制内容。
操作步骤
- 通过插件公开路径请求一个静态 PNG 图片
- 查看响应状态码、Content-Type 和响应体
- 在浏览器页面加载该图片并查看显示结果
预期结果
- 图片请求返回上游实际状态码,资源状态显示 200
- 响应头 Content-Type 显示 image/png 或其他 image/* 类型,响应体为图片二进制内容
- 浏览器显示图片,响应未被 fallback 为 text/html
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-033-TC-001 · 插件 API 路径异常时返回明确 HTTP 错误
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-033-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-033 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件 API 的 DSH 用户;2. 预置有效路径规则和运行中的网关,上游未提供目标 API 路径;3. 浏览器开发者工具或 HTTP 客户端可查看响应状态、响应头和响应体。
操作步骤
- 通过插件公开路径请求上游不存在的 API 路径
- 查看 HTTP 响应状态码、Content-Type 和响应体
- 查看网关日志中的实际转发路径
预期结果
- HTTP 响应显示上游返回的 404 或明确错误状态
- 响应体显示可识别的 API 错误内容,响应未被路由到 DSH HTML 页面
- 网关日志显示路径前缀只拼接一次,未发生重复转发
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-033-TC-002 · 缺失静态图片时保留图片请求错误类型
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-033-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-033 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件静态资源的 DSH 用户;2. 预置有效插件路径规则但删除目标 PNG 文件,网关和插件页面正在运行;3. 浏览器开发者工具可查看图片请求的 HTTP 状态和 Content-Type。
操作步骤
- 通过插件公开路径请求已删除的 PNG 文件
- 查看图片请求的 HTTP 状态、Content-Type 和响应体
- 在浏览器页面加载该图片并查看错误表现
预期结果
- 图片请求显示上游实际的 404 状态
- 响应头显示上游声明的图片或资源错误类型,响应未被 fallback 为 text/html
- 浏览器显示图片加载失败状态,页面未把 HTML 当作图片内容渲染
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-033-TC-003 · 无效 API URL 目标地址时展示网关连接错误
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-033-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-033 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置查看权限的管理员用户;2. 预置路径规则指向不可访问的上游地址,网关仍在运行;3. 插件 API 请求页面和网关错误日志可访问。
操作步骤
- 通过插件公开路径发起 API 请求
- 查看 HTTP 响应和页面错误提示
- 查看网关进程与其他路径规则状态
预期结果
- 请求返回可识别的上游连接错误状态
- 页面显示插件 API 请求失败提示,响应未显示 DSH HTML 内容
- 网关进程继续运行,其他路径规则仍显示可用
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-034-TC-001 · SSE 请求通过网关持续接收有序事件
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-034-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-034 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 集成 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件流式 API 的 DSH 用户;2. 预置网关和插件上游支持 SSE,路径规则已映射到目标上游;3. 客户端可读取事件流,测试上游会依次发送至少三个事件。
操作步骤
- 通过插件公开路径建立 SSE 连接
- 等待上游连续发送多个事件
- 查看事件到达顺序、响应头和连接状态
预期结果
- SSE 连接建立并返回 text/event-stream 响应头
- 客户端按上游顺序持续接收到多个事件,事件未被一次性缓存
- 网关保持连接打开,事件内容未被截断
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-034-TC-002 · WebSocket 请求完成协议升级并双向传输消息
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-034-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-034 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 集成 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件 WebSocket API 的 DSH 用户;2. 预置网关和插件上游支持 WebSocket,公开路径规则与升级配置已加载;3. 客户端和上游均可发送、接收测试消息。
操作步骤
- 通过插件公开路径发起 WebSocket 连接
- 查看连接握手响应并等待协议升级完成
- 从客户端发送测试消息并读取上游回复
- 等待上游发送消息并在客户端读取内容
预期结果
- WebSocket 握手返回协议升级状态,连接显示为 open
- 客户端消息到达插件上游并返回对应回复
- 上游消息到达客户端,消息内容和顺序保持显示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-034-TC-003 · 流式或 WebSocket 连接关闭后清理网关资源
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-034-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-034 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 资源管理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件长连接 API 的 DSH 用户;2. 预置网关、SSE 上游、WebSocket 上游和至少一个普通插件 API;3. 网关可查看连接数和资源状态,客户端可主动关闭长连接。
操作步骤
- 建立一个 SSE 连接和一个 WebSocket 连接
- 记录网关连接数并关闭客户端长连接
- 查看网关连接数、进程状态并发起普通插件 API 请求
预期结果
- 网关显示两个长连接处于打开状态
- 客户端断开后对应连接数减少,网关释放长连接资源
- 网关进程继续运行,普通插件 API 请求仍返回上游响应
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-035-TC-001 · 未配置插件路径返回明确 404 错误
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-035-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-035 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备插件 API 访问权限;2. 预置网关已启动,allowlist 未配置测试插件路径,DSH Web HTML fallback 可被识别;3. HTTP 客户端可查看状态码、响应头和响应体。
操作步骤
- 请求一个未配置的插件公开路径
- 查看 HTTP 响应状态码、Content-Type 和响应体
- 查看网关进程和已配置插件连接状态
预期结果
- 请求返回 404 或明确拒绝状态
- 响应体显示路径未配置错误,Content-Type 未伪装为 DSH Web HTML
- 网关进程继续运行,已配置插件请求仍可访问
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-035-TC-002 · 上游不可用时 API 请求返回连接错误状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-035-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-035 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件 API 的 DSH 用户;2. 预置合法路径规则但停止目标上游服务,网关和其他插件上游仍运行;3. 客户端可查看 API 响应和网关日志。
操作步骤
- 通过合法插件路径发起 API 请求
- 查看响应状态码、响应体和页面提示
- 发起其他已配置插件请求并查看网关状态
预期结果
- API 请求返回网关或上游连接错误状态
- 页面显示 API 请求失败提示,响应未返回 DSH Web HTML
- 其他插件请求继续返回上游响应,网关进程继续运行
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-035-TC-003 · 上游静态资源不可用时不显示图片成功状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-035-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-035 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件静态资源的 DSH 用户;2. 预置合法图片路径规则但停止图片上游或移除目标资源,网关仍在运行;3. 浏览器开发者工具可查看图片响应头和页面加载状态。
操作步骤
- 通过插件公开路径请求不可用的静态图片
- 查看图片响应状态、Content-Type 和响应体
- 在浏览器中加载图片并查看页面表现
预期结果
- 图片请求返回 404、502 或其他上游错误状态
- 响应头显示实际错误类型,响应体未返回 DSH Web HTML
- 页面显示图片加载失败状态,未显示图片已加载完成
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
FNOS-002-dsh-app-plugin-optimization-TP-036-TC-001 · 安装或升级 profile web 中的全部统一版本组件
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-036-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-036 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 安装或升级权限的管理员用户;2. 预置旧版本 DSH、插件、依赖、native 和 FPK 组件,准备用户数据备份;3. profile web 可访问,安装源和版本校验工具可用。
操作步骤
- 查看 profile web 中的旧版本组件和待安装目标
- 点击「安装或升级」按钮
- 等待安装流程完成并查看组件版本和依赖状态
预期结果
- 页面显示旧版本组件、目标版本和用户配置备份状态
- 安装流程完成,DSH、插件、依赖、native 和 FPK 组件均显示 0.1.1-rc.2
- 依赖关系解析完成,页面未显示版本冲突或缺失组件
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
FNOS-002-dsh-app-plugin-optimization-TP-036-TC-002 · 升级组件后保留 DSH 用户数据和插件配置
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-036-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-036 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 安装或升级权限的管理员用户;2. 预置 DSH_HOME、profile、凭据、工作区和插件配置快照,并存在旧版本组件;3. profile web 安装源可访问,升级后 Web 和插件启动检查可执行。
操作步骤
- 记录 DSH_HOME、profile、凭据、工作区和插件配置内容
- 点击「安装或升级」并等待所有组件完成更新
- 启动 DSH Web 和插件并打开配置页面
- 查看用户数据、版本号和插件运行状态
预期结果
- 页面显示升级前用户数据和配置快照
- 所有目标组件显示版本 0.1.1-rc.2,升级流程显示完成
- DSH Web 和插件启动并显示可访问状态
- DSH_HOME、profile、凭据、工作区和插件配置内容继续显示,插件状态显示启用
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 [术语不一致: 统一为 打开「配置页面 4. 逐项查看用户数」] |
FNOS-002-dsh-app-plugin-optimization-TP-037-TC-001 · 安装源不可用时展示升级失败并保留旧版本
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-037-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-037 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 安装或升级权限的管理员用户;2. 预置旧版本组件、用户配置备份和不可访问的安装源;3. profile web 安装页面已打开,版本检测和错误提示可用。
操作步骤
- 查看旧版本组件和用户配置备份状态
- 点击「安装或升级」按钮
- 等待安装源请求超时并查看升级结果
预期结果
- 页面显示旧版本组件和待安装目标
- 安装流程显示安装源连接失败或超时提示
- 组件未被替换为不完整版本,用户配置备份仍显示可用
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
FNOS-002-dsh-app-plugin-optimization-TP-037-TC-002 · 单个组件升级失败时回滚组件版本和配置
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-037-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-037 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 安装或升级权限的管理员用户;2. 预置多组件旧版本和用户数据快照,模拟其中一个插件升级失败;3. 安装或升级流程已加载,回滚机制和版本查询接口可用。
操作步骤
- 点击「安装或升级」按钮开始统一版本升级
- 等待指定插件升级失败
- 查看全部组件版本、用户配置和安装结果
预期结果
- 页面显示统一升级处理中状态
- 插件升级失败后页面显示回滚提示,流程未显示全部组件升级完成
- 组件版本回到升级前可用状态,DSH_HOME、profile、凭据、工作区和插件配置继续显示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
FNOS-002-dsh-app-plugin-optimization-TP-037-TC-003 · 依赖或 native 版本不兼容时阻止部分升级
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-037-TC-003 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-037 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P2 |
| 用例类型 | 异常验证 |
| 测试类别 | 兼容性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P2 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 安装或升级权限的管理员用户;2. 预置组件依赖或 native 版本与目标 0.1.1-rc.2 不兼容,并保存用户配置快照;3. 版本解析器和安装流程可返回依赖校验错误。
操作步骤
- 点击「安装或升级」按钮并等待依赖解析
- 查看依赖、native 和 FPK 版本校验结果
- 打开 DSH Web、插件和配置页面
预期结果
- 页面显示依赖或 native 版本不兼容错误
- 安装流程停止或回滚,页面未显示部分组件已完成升级
- DSH Web、插件和配置页面按可用版本加载,用户配置内容继续显示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
FNOS-002-dsh-app-plugin-optimization-TP-038-TC-001 · 安装前检测已存在目标插件并跳过重复安装
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-038-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-038 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 功能 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 插件安装权限的管理员用户;2. 预置目标插件 0.1.1-rc.2 已安装在 profile web,插件配置和启用状态已记录;3. 安装插件页面已打开,插件清单、版本校验和安装日志可读取。
操作步骤
- 查看 profile web 本地插件清单和目标插件版本
- 点击「安装插件」按钮
- 等待安装器完成版本检测并查看安装日志
预期结果
- 页面显示目标插件已存在且版本为 0.1.1-rc.2
- 安装器跳过目标插件的重复安装流程
- 安装日志未显示目标插件重新下载、覆盖或重复注册记录
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
FNOS-002-dsh-app-plugin-optimization-TP-038-TC-002 · 跳过重复安装后保留插件启用状态和配置
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-038-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-038 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 插件安装权限的管理员用户;2. 预置目标插件 0.1.1-rc.2 已安装启用,并记录 profile、凭据、工作区和插件配置快照;3. 安装器可执行版本检测,插件启动状态和配置页面可访问。
操作步骤
- 记录目标插件的启用状态、profile 和插件配置
- 点击「安装插件」并等待安装器完成检测
- 打开插件详情和配置页面查看安装结果
预期结果
- 页面显示插件原启用状态和配置内容
- 安装器显示目标版本已存在并跳过重新安装
- 插件状态继续显示启用,profile、凭据、工作区和插件配置内容继续显示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
FNOS-002-dsh-app-plugin-optimization-TP-039-TC-001 · 版本号或安装包校验失败时阻止升级完成
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-039-TC-001 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-039 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 安装或升级权限的管理员用户;2. 预置旧版本组件可运行,并准备版本号不匹配或包校验失败的升级包;3. 安装或升级页面已打开,版本校验和错误日志可读取。
操作步骤
- 查看组件版本号和安装包校验信息
- 点击「安装或升级」按钮
- 等待版本校验流程结束并查看安装结果
预期结果
- 页面显示旧版本信息和待升级包校验状态
- 校验失败被捕获,页面未显示安装完成提示
- 安装结果显示失败原因,半安装内容未被标记为可用版本
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
FNOS-002-dsh-app-plugin-optimization-TP-039-TC-002 · 升级中断后回滚并保留用户配置和插件状态
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-039-TC-002 |
| 测试点 | FNOS-002-dsh-app-plugin-optimization-TP-039 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 profile web 安装或升级权限的管理员用户;2. 预置旧版本组件、DSH_HOME、profile、凭据、工作区和插件配置快照,并使升级过程中网络中断;3. 安装器支持回滚,DSH Web 和插件状态查询可访问。
操作步骤
- 点击「安装或升级」按钮开始组件更新
- 在组件下载或安装阶段中断网络
- 等待安装器显示处理结果并打开 DSH Web 配置页面
- 查看组件版本、用户数据和插件启用状态
预期结果
- 页面显示升级处理中状态
- 网络中断后页面显示升级失败和回滚提示
- 组件恢复到可用旧版本或最后有效状态,半安装内容被清理
- DSH_HOME、profile、凭据、工作区和插件配置继续显示,插件状态显示启用
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
RISK-001-ETP-1-TC-001 · 用量接口字段缺失或类型错误时显示错误并保留快照
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK001-TC-001 |
| 测试点 | RISK-001-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 数据校验 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备查看 Codex 用量权限;2. 预置一份有效用量快照,并准备字段缺失和字段类型错误的接口响应;3. DSH Web 会话输入区和设置面板已加载,用量刷新接口可拦截。
操作步骤
- 打开 Codex 设置面板并查看当前有效用量快照
- 让用量接口返回缺少 limit_window_seconds 的响应
- 让用量接口返回剩余比例为字符串的响应
- 查看用量提示、错误状态和快照内容
预期结果
- 页面显示当前有效用量快照
- 字段缺失响应触发明确的用量数据错误提示
- 类型错误响应触发字段格式错误提示
- 页面保留最后有效用量快照,未用异常响应覆盖五小时或一周用量
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 [术语不一致: 统一为 打开「Codex 设置面板并触发用」] |
RISK-001-ETP-1-TC-002 · 空数组或 HTTP 错误时支持重试并保持有效用量
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK001-TC-002 |
| 测试点 | RISK-001-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 异常验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备查看和刷新 Codex 用量权限;2. 预置最后有效用量快照,并准备空数组、HTTP 500 和恢复后的有效接口响应;3. DSH Web 用量入口已加载,刷新按钮和接口重试机制可操作。
操作步骤
- 打开会话输入区的 Codex 用量入口
- 让用量接口依次返回空数组和 HTTP 500 响应
- 查看页面提示和当前用量展示
- 点击刷新按钮并让接口返回有效用量数据
预期结果
- 空数组和 HTTP 500 响应分别显示数据为空或请求失败提示
- 页面继续显示最后有效用量快照,不显示空数据覆盖后的错误比例
- 刷新按钮保持可操作状态并发起新的用量请求
- 新请求返回有效数据后页面显示更新后的五小时或一周用量
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
RISK-002-ETP-1-TC-001 · 并发删除历史与当前 occurrence 时按身份同步 Tree
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK002-TC-001 |
| 测试点 | RISK-002-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 并发 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置同一路径的历史 occurrence 和当前 occurrence,并记录各自 occurrence、draftRev 与 TreeSelect 关系;3. 会话输入区、NAS TreeSelect 和并发删除事件处理机制已加载。
操作步骤
- 打开包含历史与当前同路径引用的会话输入区
- 同时删除历史 occurrence 和当前 occurrence
- 等待两个删除事件完成处理
- 查看输入框引用和 TreeSelect 节点状态
预期结果
- 两个删除事件分别携带对应 occurrence 和 draftRev
- 输入框移除两个目标 occurrence,未删除的普通文本和其他引用继续显示
- TreeSelect 仅取消两个目标 occurrence 对应关系,未关联节点状态未改变
- 页面显示输入框内容与 TreeSelect 选中节点对应
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
RISK-002-ETP-1-TC-002 · 重复处理删除事件时保持 Tree 状态幂等
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK002-TC-002 |
| 测试点 | RISK-002-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 正向验证 |
| 测试类别 | 并发 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用删除同步 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备 NAS 文件授权与引用编辑权限;2. 预置相同路径的历史和当前 occurrence,准备重复到达的删除事件及初始 TreeSelect 选择快照;3. 会话输入区和 TreeSelect 已加载,draftRev 幂等处理可观测。
操作步骤
- 在输入框中删除当前 occurrence 并生成删除事件
- 重复提交相同 occurrence 和 draftRev 的删除事件
- 查看输入框、TreeSelect 和同步日志
预期结果
- 第一次删除移除目标 occurrence,并取消对应 TreeSelect 节点关系
- 重复删除事件不再移除其他引用,页面未产生重复错误状态
- TreeSelect 目标节点保持未选中,历史 occurrence 对应节点状态保持显示
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用删除同步 |
RISK-003-ETP-1-TC-001 · limit_window_seconds 临界值识别五小时与周用量窗口
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK003-TC-001 |
| 测试点 | RISK-003-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 边界验证 |
| 测试类别 | 数据校验 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备查看 Codex 用量权限;2. 预置用量接口分别返回 limit_window_seconds 为 17999、18000、18001 的响应;3. DSH Web 设置面板和会话输入区已加载,用量展示和刷新接口可访问。
操作步骤
- 打开 Codex 设置面板并触发用量刷新
- 让接口依次返回 limit_window_seconds 为 17999、18000、18001 的数据
- 查看设置面板和会话输入区的用量文案
- 查看每个窗口对应的重置时间和剩余比例
预期结果
- 17999 秒响应不被识别为五小时窗口,页面按周用量规则显示
- 18000 秒响应被识别为五小时窗口,页面显示五小时用量和对应重置时间
- 18001 秒响应不被识别为五小时窗口,页面按周用量规则显示
- 各响应的剩余比例和重置时间分别显示接口返回值
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
RISK-003-ETP-1-TC-002 · 剩余比例 0% 和 100% 时展示进度边界
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK003-TC-002 |
| 测试点 | RISK-003-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 边界验证 |
| 测试类别 | 界面展示 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备查看 Codex 用量权限;2. 预置五小时或周用量接口返回剩余比例 0% 和 100% 的有效数据;3. DSH Web 用量进度展示已加载,进度组件支持显示边界值。
操作步骤
- 打开会话输入区的 Codex 用量入口
- 让接口返回剩余比例 0% 的用量数据
- 查看圆形进度条、剩余文案和 tooltip
- 让接口返回剩余比例 100% 的用量数据并再次查看
预期结果
- 剩余比例 0% 时进度条显示空进度,页面显示剩余 0% 文案
- tooltip 显示对应时间窗口的完整用量信息
- 剩余比例 100% 时进度条显示满进度,页面显示剩余 100% 文案
- 页面未显示超出进度范围的视觉结果
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 |
RISK-003-ETP-1-TC-003 · 负数和 101% 剩余比例被限制在可展示范围
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK003-TC-003 |
| 测试点 | RISK-003-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 边界验证 |
| 测试类别 | 数据校验 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Codex 登录与用量状态→Codex 用量刷新 |
| 用例集 | Codex 登录与用量状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备查看 Codex 用量权限;2. 预置用量接口分别返回剩余比例 -1% 和 101% 的异常数据;3. DSH Web 用量入口、进度组件和错误处理提示已加载。
操作步骤
- 打开 Codex 用量入口并触发刷新
- 让接口返回剩余比例 -1% 的数据
- 查看进度条、剩余文案和错误提示
- 让接口返回剩余比例 101% 的数据并再次查看
预期结果
- 负数数据触发边界数据提示,进度条不显示负向图形
- 页面将剩余比例限制在 0% 至 100% 的展示范围内
- 101% 数据触发边界数据提示,进度条不超过满进度
- tooltip 和用量文案显示可识别的异常状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Codex 登录与用量状态.Codex 用量刷新 [术语不一致: 统一为 打开「Codex 设置面板并触发用」] |
RISK-004-ETP-1-TC-001 · HTTP JSON 与 image/png 反代保持路径和 Content-Type
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK004-TC-001 |
| 测试点 | RISK-004-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 集成验证 |
| 测试类别 | 协议兼容 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件 API 和静态资源的 DSH 用户;2. 预置网关路径规则、HTTP JSON 上游和 image/png 静态资源上游;3. HTTP 客户端或浏览器开发者工具可查看请求路径、状态码、响应体和 Content-Type。
操作步骤
- 通过插件公开路径请求 HTTP JSON API
- 查看 JSON 请求的实际转发路径、状态码和响应体
- 通过插件公开路径请求 image/png 静态资源
- 查看图片请求的实际转发路径、状态码、响应头和响应体
预期结果
- JSON 请求路径前缀只拼接一次,响应返回上游 JSON 内容
- JSON 响应状态码和必要响应头被保留
- 图片请求路径前缀只拼接一次,响应返回图片二进制内容
- 图片响应 Content-Type 显示 image/png,未被 fallback 为 text/html
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
RISK-004-ETP-1-TC-002 · SSE 与 WebSocket 反代保持实时连接和协议升级
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK004-TC-002 |
| 测试点 | RISK-004-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 集成验证 |
| 测试类别 | 协议兼容 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代访问 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录可访问插件长连接 API 的 DSH 用户;2. 预置网关、SSE 上游、WebSocket 上游和对应公开路径规则;3. 客户端可读取流式事件并建立 WebSocket 双向连接。
操作步骤
- 通过插件公开路径建立 SSE 连接并读取连续事件
- 查看 SSE 响应头和事件到达顺序
- 通过插件公开路径建立 WebSocket 连接
- 发送客户端消息并读取上游回复,再读取上游主动消息
预期结果
- SSE 响应显示 text/event-stream,事件按上游顺序持续到达
- SSE 数据未被一次性缓存或截断
- WebSocket 握手返回协议升级状态,连接显示为 open
- 客户端和上游消息均可通过网关双向到达
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代访问 |
RISK-005-ETP-1-TC-001 · 统一版本升级后逐项保留用户数据和 allowlist 快照
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK005-TC-001 |
| 测试点 | RISK-005-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 数据验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备升级权限的管理员用户;2. 预置 DSH_HOME、凭据、工作区、插件配置和最后有效 gateway/path-allowlist.json 快照;3. profile web 安装源和版本校验服务可访问,升级前后数据可读取。
操作步骤
- 记录凭据、工作区、插件配置和最后有效 allowlist 内容
- 执行安装或升级到 0.1.1-rc.2
- 等待 Web 和插件启动后打开配置页面
- 逐项查看用户数据、组件版本和 allowlist 规则
预期结果
- 页面显示升级前各项快照内容
- DSH、插件、依赖、native 和 FPK 组件显示 0.1.1-rc.2
- 凭据、工作区和插件配置内容继续显示
- allowlist 显示最后有效路径规则,Web 和插件显示可访问状态
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
RISK-005-ETP-1-TC-002 · 升级失败回滚后逐项保留凭据配置和有效 allowlist
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK005-TC-002 |
| 测试点 | RISK-005-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 数据验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备升级权限的管理员用户;2. 预置用户数据快照和最后有效 allowlist,并模拟升级中途组件安装失败;3. 安装器支持失败回滚,DSH Web、插件和配置查询接口可访问。
操作步骤
- 记录 DSH_HOME、凭据、工作区、插件配置和 allowlist 规则
- 启动安装或升级并在中途触发组件安装失败
- 等待回滚完成并打开配置页面
- 逐项查看组件版本、用户数据、插件状态和 allowlist 规则
预期结果
- 页面显示升级处理中状态和失败原因
- 回滚完成后组件恢复到可用旧版本或最后有效状态
- DSH_HOME、凭据、工作区和插件配置内容继续显示,插件状态显示启用
- allowlist 继续显示最后有效路径规则,网关保持运行
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 [术语不一致: 统一为 打开「配置页面 4. 逐项查看用户数」] |
RISK-006-ETP-1-TC-001 · DSH Web 重启日志记录操作者目标结果和 traceId
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK006-TC-001 |
| 测试点 | RISK-006-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 安全验证 |
| 测试类别 | 审计 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的管理员用户;2. 预置运行中的网关和 DSH Web,并准备可查询的操作日志存储;3. DSH Web 恢复页和关联日志查询入口已加载。
操作步骤
- 记录当前管理员账号、Web PID 和网关 PID
- 点击左侧「重启」按钮并等待页面显示恢复结果
- 打开「关联日志」并按本次操作时间查询日志
预期结果
- 页面显示本次重启的操作者账号和目标 Web 实例
- 日志记录操作时间、目标、处理结果和 traceId 字段
- 按 traceId 查询可返回本次重启的关联日志,网关 PID 记录保持不变
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
RISK-006-ETP-1-TC-002 · 保存和放弃 API URL 规则分别留下可查询审计记录
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK006-TC-002 |
| 测试点 | RISK-006-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 安全验证 |
| 测试类别 | 审计 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 API URL 配置编辑权限的管理员用户;2. 预置一份可用 allowlist 规则和可查询的操作日志存储;3. API URL 配置页、保存和放弃操作入口已加载。
操作步骤
- 修改插件 API URL 路径并点击保存
- 再次修改路径并点击放弃
- 打开「关联日志」并查询两次操作记录
预期结果
- 保存操作日志显示操作者、时间、目标插件、保存结果和 traceId
- 放弃操作日志显示操作者、时间、目标插件、放弃结果和 traceId
- 按两个 traceId 查询均返回对应关联日志,日志未显示未执行的临时规则已生效
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 |
RISK-006-ETP-1-TC-003 · 升级失败回滚日志记录失败原因和关联 traceId
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK006-TC-003 |
| 测试点 | RISK-006-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 安全验证 |
| 测试类别 | 审计 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | FPK 网关、恢复与 API 反代→统一版本组件升级 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备组件升级权限的管理员用户;2. 预置升级失败条件、用户配置备份和可查询的操作日志存储;3. profile web 升级页面与关联日志查询入口已加载。
操作步骤
- 点击「安装或升级」并在安装阶段触发组件失败
- 等待回滚流程结束并查看升级结果
- 打开「关联日志」并按 traceId 查询本次升级记录
预期结果
- 页面显示组件升级失败和回滚结果
- 日志记录操作者、时间、升级目标、失败原因、回滚结果和 traceId
- 按 traceId 查询返回升级失败与回滚的关联日志,用户配置未被删除
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.统一版本组件升级 |
RISK-007-ETP-1-TC-001 · 并发重启和陈旧 PID 交错时保持单个健康 Web 实例
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK007-TC-001 |
| 测试点 | RISK-007-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 并发验证 |
| 测试类别 | 资源管理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的管理员用户;2. 预置运行中的网关和 DSH Web,准备陈旧 PID、重复重启请求与可控健康检查响应;3. 重启状态、进程 PID 和网关监听信息可查询。
操作步骤
- 记录当前网关 PID 和 Web PID
- 连续提交两个重启请求并让第一个请求携带陈旧 PID
- 交错返回健康检查结果和 Web 进程退出事件
- 查看最终 Web 实例、Web PID 和网关进程
预期结果
- 系统只创建一个有效 Web 重启任务,重复请求被阻止或忽略
- 陈旧 PID 不覆盖当前有效 PID,健康检查结果按当前任务处理
- 最终只保留一个健康 Web 实例,Web PID 一次性更新
- 网关 PID 保持不变,网关监听服务继续可用
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
RISK-007-ETP-1-TC-002 · 健康检查超时和进程退出同时发生时释放启动锁
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK007-TC-002 |
| 测试点 | RISK-007-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 并发验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 DSH Web 重启权限的管理员用户;2. 预置 Web 重启任务、旧 Web PID 和运行中的网关,并模拟健康检查超时与新进程退出同时发生;3. 启动锁、Web PID、网关 PID 和错误提示可观测。
操作步骤
- 点击左侧「重启」按钮发起 Web 重启
- 同时触发健康检查超时和新 Web 进程退出
- 等待系统处理交错事件并查看恢复结果
- 再次点击「重启」按钮
预期结果
- 页面显示单个重启任务的处理中状态
- 系统显示健康检查超时或进程退出错误,未保留失效 Web PID
- 启动锁显示已释放,网关 PID 未改变
- 页面允许提交新的重启请求,未创建重复 Web 实例
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 |
RISK-008-ETP-1-TC-001 · 管理员可执行 Web 重启并保存反代规则
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK008-TC-001 |
| 测试点 | RISK-008-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 权限验证 |
| 测试类别 | 访问控制 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→DSH Web 重启 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备网关管理权限的管理员用户;2. 预置运行中的 DSH Web、网关和可编辑的 API URL allowlist;3. DSH Web 恢复页与 API URL 配置页已加载,授权接口可访问。
操作步骤
- 以管理员身份打开 DSH Web 恢复页面并查看重启入口
- 点击「重启」按钮并等待页面恢复
- 打开 API URL 配置页修改插件路径规则并点击保存
- 查看页面权限提示和操作结果
预期结果
- 页面显示管理员可用的重启入口和 API URL 编辑控件
- Web 重启请求返回允许状态,页面显示恢复结果
- API URL 规则保存完成,allowlist 增加新规则
- 页面显示管理员操作结果,网关和 Web 状态继续可访问
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.DSH Web 重启 [术语不一致: 统一为 打开「DSH Web 左侧菜单并点」] |
RISK-008-ETP-1-TC-002 · 普通用户不能重启 Web 或保存未授权反代规则
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK008-TC-002 |
| 测试点 | RISK-008-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 权限验证 |
| 测试类别 | 访问控制 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P0 |
| 菜单路径 | FPK 网关、恢复与 API 反代→API URL 反代配置 |
| 用例集 | FPK 网关、恢复与 API 反代 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录不具备网关管理权限的普通用户;2. 预置运行中的 DSH Web、网关和仅授权范围内可查看的 API URL 规则;3. 恢复页、API URL 配置接口和权限校验已加载。
操作步骤
- 以普通用户打开 DSH Web 恢复页面
- 查看重启按钮和授权范围内的配置
- 直接提交 Web 重启请求并提交未授权 API URL 规则保存请求
- 查看 HTTP 响应和页面提示
预期结果
- 页面隐藏重启按钮或将按钮显示为不可用
- 页面仅显示授权范围内的 API URL 配置,未显示其他插件规则
- 未授权请求返回 403 或明确拒绝状态,Web 未被重启且规则未写入
- 页面显示权限不足提示,网关进程和现有规则继续运行
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.FPK 网关、恢复与 API 反代.API URL 反代配置 [术语不一致: 统一为 打开「DSH Web 页面查看会话」] |
RISK-009-ETP-1-TC-001 · Semi UI 升级或卸载后 DSH 外层页面可恢复
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK009-TC-001 |
| 测试点 | RISK-009-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 兼容性验证 |
| 测试类别 | 插件生命周期 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Semi UI 总览→插件生命周期兼容 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且拥有插件管理权限;2. 预置 DSH Semi UI 插件已安装启用,外层 DSH 设置页面和插件列表可访问;3. 插件升级包或卸载操作可执行,浏览器页面支持返回来源路由。
操作步骤
- 从 DSH 设置打开 Semi UI 总览并记录来源页面
- 执行 Semi UI 插件升级或卸载操作
- 返回 DSH 外层设置页面并刷新浏览器
- 查看插件列表、来源页面和页面错误状态
预期结果
- Semi UI 总览显示组件菜单和当前组件内容
- 升级或卸载流程显示处理结果,外层 DSH 路由未被破坏
- 刷新后 DSH 外层设置页面继续显示,插件列表状态与操作结果对应
- 页面未显示空白崩溃页,其他插件入口继续可访问
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
RISK-009-ETP-1-TC-002 · 直接访问 Hash 路由和缺失依赖时隐藏不可用菜单
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK009-TC-002 |
| 测试点 | RISK-009-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 兼容性验证 |
| 测试类别 | 路由兼容 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | Semi UI 总览→插件生命周期兼容 |
| 用例集 | Semi UI 总览 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录 DSH 用户且具备插件总览访问权限;2. 预置 Semi UI 插件可直接访问 Hash 路由,并模拟一个组件依赖缺失、其他组件依赖完整;3. 浏览器支持前进后退刷新,Semi UI 能力探测接口可访问。
操作步骤
- 直接访问 #/plugins/semi-ui 路由并刷新页面
- 点击浏览器后退和前进按钮
- 等待组件能力探测完成并查看左侧菜单
- 点击一个仍可用的组件菜单项
预期结果
- 直接访问和刷新后页面显示 Semi UI 总览
- 后退和前进后总览路由与页面内容可恢复
- 左侧菜单隐藏依赖缺失的组件,只显示有展示页面且已启用的组件
- 点击可用组件后主区域显示对应预览和代码,页面未出现依赖错误堆栈
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.Semi UI 总览.Semi UI 总览浏览 |
RISK-010-ETP-1-TC-001 · 授权变更后 TreeSelect 更新可选节点范围
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK010-TC-001 |
| 测试点 | RISK-010-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 数据验证 |
| 测试类别 | 权限数据 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 NAS 文件授权和引用插入权限的 DSH 用户;2. 预置授权目录快照、已授权文件和授权变更后的新增或移除节点;3. 会话输入区和 NAS TreeSelect 已加载,授权查询接口可访问。
操作步骤
- 打开会话输入区并打开 NAS TreeSelect
- 查看当前授权目录和可选文件节点
- 更新授权目录后重新加载 TreeSelect
- 选择新增授权文件并点击插入
预期结果
- TreeSelect 显示授权快照中的目录和文件节点
- 授权移除的节点不再显示为可选,新增节点显示在对应目录下
- 重新加载后节点选中状态按最新授权快照显示
- 消息输入框增加新增文件的 structured reference
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 |
RISK-010-ETP-1-TC-002 · TreeSelect 懒加载失败时显示节点错误并保留已加载数据
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK010-TC-002 |
| 测试点 | RISK-010-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 数据验证 |
| 测试类别 | 异常处理 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 NAS 文件授权和引用插入权限的 DSH 用户;2. 预置包含可展开目录的授权快照,并模拟子目录懒加载接口失败;3. 会话输入区和 NAS TreeSelect 已加载,节点加载错误状态可展示。
操作步骤
- 打开 NAS TreeSelect 并展开一个授权目录
- 让子目录懒加载接口返回错误
- 查看目录节点错误提示和已加载的文件节点
- 重新触发目录加载并选择一个已加载文件
预期结果
- TreeSelect 显示目录展开状态并发起子目录加载
- 目录节点显示加载失败或重试提示,页面未显示空白 Tree
- 已加载文件节点继续显示,授权范围外节点未出现
- 重试后可展开目录并插入已加载文件的 structured reference
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 [术语不一致: 统一为 打开「的 NAS TreeSelec」] |
RISK-010-ETP-1-TC-003 · 空目录与文件目录混合数据生成正确 structured reference
| 字段 | 内容 |
|---|---|
| 记录 ID | FNOS-002-TP-RISK010-TC-003 |
| 测试点 | RISK-010-ETP-1 |
| 工程 | fn-os-apps |
| 需求 | FNOS-002 |
| 记录类型 | 测试用例 |
| 优先级 | P1 |
| 用例类型 | 数据验证 |
| 测试类别 | 数据完整性 |
| 是否冒烟 | 否 |
| 风险标记 | 是 |
| 优先级提示 | P1 |
| 菜单路径 | NAS 引用与 Tree 状态→NAS 引用插入 |
| 用例集 | NAS 引用与 Tree 状态 |
| 创建人 | AI生成 |
| 执行人 | 未填写 |
| 执行状态 | 未记录 |
| 截图 | 未填写 |
前置条件
- 已登录具备 NAS 文件授权和引用插入权限的 DSH 用户;2. 预置一个空目录、一个仅含文件的目录和一个文件目录混合节点,并保存授权快照;3. 会话输入区和 NAS TreeSelect 已加载,structured reference 插入能力可用。
操作步骤
- 打开 NAS TreeSelect 查看空目录、文件节点和混合目录
- 展开混合目录并选择一个文件和一个目录节点
- 点击插入并查看消息输入框内容
- 重新打开 TreeSelect 查看节点选中状态
预期结果
- TreeSelect 显示空目录、文件节点和文件目录混合节点,空目录可展开状态按数据返回
- 文件和目录节点显示可选状态,并显示对应层级关系
- 消息输入框增加文件和目录的 structured reference,引用路径来自授权快照
- 重新打开后已插入节点显示选中状态,其他节点保持未选中
| 备注 | 内容 |
|---|---|
| 生成备注 | 步骤引用:P5.description;规则引用:P5.related_rules[];菜单引用:P1.scenario.NAS 引用与 Tree 状态.NAS 引用插入 [术语不一致: 统一为 打开「的 NAS TreeSelec」] |