Files
ArmorandClaude Opus 4.7 e1d601a774 chore: add reference docs, scripts, tests, demo, prototypes
- Reference docs: known issues, user journey, location redesign, mission merge plan
- Scripts: fill_location_state, merge_missions, migrate_location, migrate_state
- Tests: e2e test suite, asset entries unit tests
- Demo: location board, hifi prototypes, test screenshots
- Data backup: asset log entries and state nodes
- Update .gitignore

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-01 15:29:47 +08:00

148 lines
7.5 KiB
Markdown

# KSP管理后台 前端迁移测试方案
## 测试范围
基于 Phase 1-6 完成的所有前端迁移内容,共 12 个测试模块。
## 测试环境
- Flask 开发服务器 (port 9000)
- Playwright headless Chromium
- 数据库: PostgreSQL (真实数据)
---
## 模块 1: 基础框架
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 1.1 | 侧边栏导航 | 打开首页,检查侧边栏所有链接 | 侧边栏显示:任务总览、任务运营(4子项)、数据中心(4子项)、燃料换算、API健康检查 |
| 1.2 | 侧边栏展开 | 首页加载时检查 | 任务运营和数据中心分组默认展开 |
| 1.3 | 当前页高亮 | 导航到每个页面 | 对应侧边栏项显示 act 样式 |
| 1.4 | 深色模式 | 打开首页,检查默认主题 | 默认深色 (data-theme="dark") |
| 1.5 | 浅色模式切换 | 点击 ◐ 按钮 | 切换到浅色,localStorage 记忆 |
| 1.6 | 深色模式切换 | 再次点击 ◐ 按钮 | 切换回深色 |
| 1.7 | 模拟时间显示 | 检查顶栏 | 显示当前 sim_time |
| 1.8 | 时间 +1d | 点击 +1d 按钮 | 页面刷新,时间增加1天 |
| 1.9 | 时间 -1d | 点击 -1d 按钮 | 页面刷新,时间减少1天 |
| 1.10 | 时间 +7d | 点击 +7d 按钮 | 页面刷新,时间增加7天 |
| 1.11 | 时间 Today | 点击 Today 按钮 | 时间重置为 2060-03-12 |
| 1.12 | 时间 Modal | 点击时间显示 | 弹出时间编辑 modal |
| 1.13 | 时间 Modal Apply | 修改时间后点击 Apply | 页面刷新,时间更新 |
| 1.14 | 时间 Modal Cancel | 点击 Cancel | modal 关闭,时间不变 |
| 1.15 | ESC 关闭 Modal | 打开 modal 后按 ESC | modal 关闭 |
## 模块 2: 任务总览
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 2.1 | 页面标题 | 检查首页 | 显示 "任务总览" |
| 2.2 | 指标卡片 | 检查 metrics | 显示 Tracked Assets / Active Missions / Upcoming |
| 2.3 | 指标真实数据 | 检查指标数字 | 数字来自数据库,非硬编码 |
| 2.4 | 状态看板分组 | 检查 status board | 显示 In Transit / Exploration / Maintenance / Docked 分组 |
| 2.5 | 状态看板数据 | 检查各分组资产数 | 数字与数据库一致 |
| 2.6 | 资产链接 | 点击状态看板中的资产名 | 跳转到资产详情页 |
| 2.7 | 模拟时间影响 | 修改 sim_time 后检查 | 指标和状态看板按新时间重新计算 |
## 模块 3: 资产列表
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 3.1 | 页面渲染 | 导航到 /assets | 显示资产表格 |
| 3.2 | 搜索 | 输入搜索词 | 过滤匹配的资产 |
| 3.3 | 类型筛选 | 选择资产类型下拉 | 只显示该类型的资产 |
| 3.4 | 排序 | 选择排序选项 | 按选择排序 |
| 3.5 | 资产详情链接 | 点击资产名 | 跳转到 /assets/<id>/detail |
| 3.6 | New Asset 按钮 | 点击 + New Asset | 跳转到创建页面 |
| 3.7 | 分页 | 点击分页链接 | 正确翻页 |
## 模块 4: 资产详情
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 4.1 | 页面渲染 | 进入资产详情 | 显示名称、类型、状态 |
| 4.2 | 信息卡片 | 检查4张卡片 | 显示 Type / Location / Mission / Entries |
| 4.3 | Docking Target | 检查对接目标区域 | 显示 "Not docked" 或已对接资产 |
| 4.4 | Docked Vehicles | 检对接载具列表 | 显示已对接载具或 "No vehicles" |
| 4.5 | 日志列表 | 检查日志表格 | 显示日期、类型、标题、状态、位置、操作 |
| 4.6 | 日志搜索 | 输入搜索词 | 过滤日志 |
| 4.7 | 日志类型筛选 | 选择 State/Event | 按类型过滤 |
| 4.8 | Edit Asset 按钮 | 点击 Edit Asset | 跳转编辑页 |
| 4.9 | ← Back 按钮 | 点击返回 | 回到资产列表 |
## 模块 5: 对接功能
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 5.1 | + Dock 按钮 | 点击 + Dock | 弹出对接 modal |
| 5.2 | 对接 modal 内容 | 检查 modal | 显示资产下拉 + Custom name 选项 + 备注 + Cancel/Dock |
| 5.3 | 选择已有资产对接 | 选择一个资产 + Dock | 刷新页面,显示对接记录 |
| 5.4 | Custom name 对接 | 选 Custom name + 输入名称 + Dock | 刷新页面,显示对接记录 |
| 5.5 | 对接后日志 | 检查日志列表 | 新增一条 dock 相关的日志条目 |
| 5.6 | Cancel 对接 | 点击 Cancel | modal 关闭,无变化 |
## 模块 6: 日志 CRUD
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 6.1 | + State Interval | 点击按钮 | 弹出 modal,显示 Start/End/State/Location/Summary/Nodes |
| 6.2 | + Event Point | 点击按钮 | 弹出 modal,隐藏 End/State/Nodes |
| 6.3 | 新增 State Interval | 填写表单 + Save | 刷新页面,新日志出现在列表中 |
| 6.4 | 新增 Event Point | 填写表单 + Save | 刷新页面,新事件出现在列表中 |
| 6.5 | State Node 添加 | 点击 "+ Add Node" | 新增一个节点行 |
| 6.6 | State Node 删除 | 点击 ✕ | 节点行删除 |
| 6.7 | State Node 数据 | 填写多个节点 + Save | 日志保存后,每个节点正确存储 |
| 6.8 | 编辑日志 | 点击 Edit | 弹出 modal,预填现有数据 |
| 6.9 | 编辑后保存 | 修改标题 + Save | 刷新页面,标题已更新 |
| 6.10 | 删除日志 | 点击 Del | confirm 后日志删除,entries 计数减少 |
## 模块 7: 地点板
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 7.1 | 页面渲染 | 导航到地点板 | 显示 Canvas 星图 + 右侧信息面板 |
| 7.2 | 星图内容 | 检查 Canvas | 显示太阳系行星(太阳、地球、火星等) |
| 7.3 | 右侧面板 | 检查 info panel | 显示 Scope / Assets in Scope / Ongoing Missions |
| 7.4 | 资产位置 | 检查 Assets in Scope | 资产按 location 分组到对应天体 |
| 7.5 | 点击行星 | 点击木星 | 进入行星系视图,显示卫星 |
| 7.6 | 点击卫星 | 在木星系点击 Io | 进入 Io 单体视图 |
| 7.7 | 返回 | 点击 ← Back | 返回上一层 |
| 7.8 | 拖拽平移 | 在星图上拖拽 | 星图跟随移动 |
| 7.9 | 滚轮缩放 | 在星图上滚动 | 星图缩放 |
## 模块 8: 时间线
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 8.1 | 页面渲染 | 导航到时间线 | 显示时间线 + 筛选栏 |
| 8.2 | Scale 切换 | 选择 Year/Month/Day | 时间线刻度变化 |
| 8.3 | 搜索筛选 | 输入资产名 | 只显示匹配资产 |
| 8.4 | Type 筛选 | 选择类型 | 只显示该类型资产 |
| 8.5 | Location 筛选 | 选择位置 | 只显示该位置资产 |
| 8.6 | State 筛选 | 选择状态 | 只显示该状态资产 |
## 模块 9: 数据中心
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 9.1 | 引擎列表 | /engines | 显示引擎表格,有搜索/筛选 |
| 9.2 | 通信列表 | /communications | 显示通信部件表格 |
| 9.3 | 燃料箱列表 | /tanks | 显示燃料箱表格 |
| 9.4 | 载具列表 | /vehicles | 显示载具表格 |
| 9.5 | 搜索 | 在引擎列表输入搜索 | 过滤结果 |
| 9.6 | 筛选 | 选择燃料类型 | 过滤结果 |
## 模块 10: 燃料换算
| # | 测试项 | 操作 | 预期结果 |
|---|--------|------|----------|
| 10.1 | 页面渲染 | /fuel-converter | 显示换算器 |
| 10.2 | 换算 L→t | 输入值 + L→t + Convert | 显示所有燃料的结果 |
| 10.3 | 换算 t→L | 切换模式 + Convert | 显示所有燃料的结果 |
## 测试执行方式
- 使用 Playwright headless Chromium
- 每个模块独立测试函数
- 每个测试项输出 PASS/FAIL
- 失败时记录具体原因
- 最终输出汇总报告