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//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
- 失败时记录具体原因
- 最终输出汇总报告