4.4 KiB
4.4 KiB
测试方案
时间戳:2026-05-04-03-21-40
测试目标
验证系统已经从纯前端静态演示升级为前后端协调系统,并确认登录同步、默认项目、恢复出厂设置、NIfTI 导出和部署均可用。
静态检查
- 检查
server.ts是否提供 API 和前端页面服务。 - 检查
src/lib/api.ts是否统一封装 API 请求。 - 检查项目列表、系统管理、逆向工作区是否不再依赖硬编码假数据。
- 检查
.gitignore是否排除WebSite/data/、WebSite/exports/、DICOM、STL、依赖和构建产物。
构建与类型检查
在 WebSite/ 下执行:
npm run lint
npm run build
预期结果:
- TypeScript 类型检查通过。
- Vite 构建通过。
API 验证
启动后端服务后验证:
curl -s http://127.0.0.1:4000/api/health
curl -s http://127.0.0.1:4000/api/session
curl -s http://127.0.0.1:4000/api/projects
curl -s http://127.0.0.1:4000/api/users
curl -s -X POST http://127.0.0.1:4000/api/demo/reset
预期结果:
- health 返回
ok。 - projects 包含默认项目
head-ct-demo。 - 默认项目
dicomCount为300。 - 默认项目 STL 模块包含
Head_CT_ReConstruct下的.stl文件。 - reset 后默认项目仍存在。
登录同步验证
- 浏览器 A 登录
admin / 123456。 - 浏览器 B 刷新或等待轮询后读取到已登录状态。
- 浏览器 A 或 B 登出后,另一个浏览器轮询后同步到未登录状态。
命令级验证:
curl -s -X POST http://127.0.0.1:4000/api/login -H 'Content-Type: application/json' -d '{"account":"admin","password":"123456"}'
curl -s http://127.0.0.1:4000/api/session
curl -s -X POST http://127.0.0.1:4000/api/logout
curl -s http://127.0.0.1:4000/api/session
NIfTI 导出验证
执行:
curl -L -o /tmp/revoxelseg-mask.nii.gz -X POST http://127.0.0.1:4000/api/projects/head-ct-demo/export-mask
file /tmp/revoxelseg-mask.nii.gz
gzip -t /tmp/revoxelseg-mask.nii.gz
预期结果:
- 下载文件存在。
- 文件为 gzip 压缩数据。
gzip -t校验通过。- 响应文件名后缀为
.nii.gz。
页面验证
- 打开
http://192.168.3.11:4000/。 - 登录页可正常登录。
- 总体概况显示后端统计数据。
- 项目库默认显示头部 CT 演示项目。
- 项目详情展示
Head_CT_DICOM和Head_CT_ReConstruct相关信息。 - 系统管理页点击“恢复演示环境出厂设置”后,项目仍恢复为默认 DICOM/STL。
- 逆向工作区可导出
nii.gzmask。
回归风险
- 引入后端后部署方式从纯 Vite 改为 Express + Vite 中间件,需要确认
4000服务由server.ts托管。 - 后端共享登录状态是演示同步方案,不等同生产级多用户 session。
- NIfTI 文件当前为演示 mask,非医学级真实 STL 体素化结果。
人工审核状态
本次用户明确要求无需人工二次确认。
状态:自动确认,继续执行。
执行结果
npm run lint执行成功。npm run build执行成功。- Vite 仍有大 chunk 警告,当前不影响本次功能。
- 已新增 Express 后端
server.ts,并通过npm run serve -- --host 0.0.0.0 --port 4000托管前后端。 GET /api/health返回ok: true。GET /api/projects返回默认项目head-ct-demo。- 默认项目载入结果:
dicomCount: 300modelCount: 9dicomPath: Head_CT_DICOMmodelPath: Head_CT_ReConstruct
POST /api/demo/reset执行成功,重置后默认项目仍载入Head_CT_DICOM与Head_CT_ReConstruct。POST /api/login使用admin / 123456登录成功。GET /api/session登录后返回authenticated: true。POST /api/logout登出成功。GET /api/session登出后返回authenticated: false。POST /api/projects/head-ct-demo/export-mask?format=nii.gz执行成功。/tmp/revoxelseg-mask.nii.gz通过gzip -t校验。- 解压后 NIfTI magic 为
n+1\0。 POST /api/projects/head-ct-demo/export-mask?format=nii执行成功,生成未压缩.nii。http://192.168.3.11:4000/返回HTTP/1.1 200 OK。- 当前部署由
tmux会话revoxelseg-dicom托管。
剩余说明
- 当前导出的 NIfTI mask 是可下载、格式有效的演示分割体数据。
- 真实医学级 STL 反向体素化仍需后续加入 DICOM 空间解析、STL 坐标配准、网格体素填充和标签体系。