根因:主包 2MB 全量组件注入导致 DevTools 渲染引擎内存渐增, 叠加离线时固定 3s 抑制期后的请求洪泛。 修复: - app.config.ts 添加 lazyCodeLoading: requiredComponents 主包 2.0MB→766KB,taro.js 526→131KB,vendors.js 230→28KB - request.ts 离线抑制改为指数退避(3s→6s→12s→30s cap) 后端不可达时自动延长抑制,防止请求风暴 - SegmentTabs Tab 接口改为 readonly,修复 TS 编译错误 - AbortController polyfill 补齐小程序运行时缺失 - 健康首页/设备同步/健康档案/报告/设置页 UI 重构 - 文章页公开端点适配游客访问 - 健康首页 Swiper 间隔优化 4s→5s,动画 500→300ms
5.1 KiB
5.1 KiB
Web 前端核心业务功能测试
测试工具: chrome-devtools MCP | 环境: Chrome, 1920x1080 测试账号: admin / Admin@2026 | 截图:
docs/qa/screenshots/
1. 登录流程 — PASS
| 测试项 | 结果 | 说明 |
|---|---|---|
| 登录页渲染 | PASS | 双栏布局,品牌信息完整 |
| 登录后跳转 | PASS | 跳转至工作台 /#/ |
| 侧边栏菜单 | PASS | 7 个一级菜单加载(工作台/患者中心/随访关怀/健康监测/运营管理/AI助手/系统管理) |
| 用户信息显示 | PASS | 右上角"系统管理员" + 头像 |
| 权限不足页面 | PASS | 403 页面清晰,含返回首页按钮 |
| XSS 安全 | PASS | SQL 注入测试数据 Robert"); DROP TABLE patients;-- 正确转义显示 |
2. 患者管理 — FAIL (2 issues)
| 测试项 | 结果 | 说明 |
|---|---|---|
| 患者列表加载 | PASS | 136 条记录,7 页分页 |
| 分页切换 | PASS | 第 2 页数据正确 |
| 创建表单打开 | PASS | 4 个分组(基本信息/联系方式/医疗信息/紧急联系人) |
| 编辑表单 | PASS | 预填充已有数据 |
| 空表单提交 | FAIL | 空表单成功提交创建患者(后端有校验但前端未拦截) |
| 搜索功能 | FAIL | 输入 "Test" 搜索后列表仍显示全部 136 条 |
H-01: 患者创建表单缺少前端必填校验
- 严重性: HIGH
- 证据: 点击"保存"空表单后审计日志显示"创建 了 患者"
- 根因: Ant Design Form 未配置
rules: [{ required: true }]或未调用form.validateFields() - 修复: 在
PatientList.tsx的 DrawerForm 中添加rules配置,提交前调form.validateFields() - 预计工时: 1h
M-01: 患者搜索不生效
- 严重性: MEDIUM
- 证据: 搜索框输入 "Test" + 回车,列表无变化
- 根因: 搜索框
keyword参数可能未正确传递到 API 请求 - 修复: 检查搜索输入与 API 参数绑定
- 预计工时: 2h
3. 健康数据/实时监控 — PASS
| 测试项 | 结果 | 说明 |
|---|---|---|
| 实时监控页 | PASS | 危急/高危/中等/低危告警计数正确 |
| 告警面板 | PASS | 1 个高危患者活跃告警 |
| 告警列表 | PASS | 5 条告警记录,状态/严重程度正确 |
| 筛选功能 | PASS | 患者下拉框存在 |
4. 预约管理 — FAIL (1 issue)
| 测试项 | 结果 | 说明 |
|---|---|---|
| 预约列表页渲染 | PASS | 表头正确(患者/医护/类型/日期/时段/状态/创建时间/备注/操作) |
| 预约数据 | FAIL | 表格显示 "No data" + "网络连接异常,请检查网络" |
| 新建预约按钮 | PASS | 按钮可见 |
H-02: 预约列表 API 网络连接异常
- 严重性: HIGH
- 证据: 页面显示"网络连接异常"No data"同时出现
- 根因: 可能是后端 API 错误或前端 API 路径不匹配
- 修复: 检查
/api/v1/health/appointments端点状态和前端 API 路径 - 预计工时: 2h
5. 咨询管理 — PASS
| 测试项 | 结果 | 说明 |
|---|---|---|
| 咨询列表加载 | PASS | 18 条咨询记录 |
| 状态显示 | PASS | 已关闭/进行中/等待中正确 |
| 操作按钮 | PASS | 进行中的会话显示"关闭"按钮 |
| 未读消息计数 | PASS | 患者端/医护端分别显示 |
| 筛选/导出 | PASS | 状态筛选、日期范围、导出按钮均存在 |
6. 工作台/仪表盘 — PASS_WITH_ISSUES
| 测试项 | 结果 | 说明 |
|---|---|---|
| 工作台首页 | PASS | 6 大状态卡片 + 统计 + 模块状态 + 活跃度 |
| 系统状态 | PASS | PostgreSQL/API/定时任务/文件存储/消息队列/缓存 全绿 |
| 统计数据 | PASS | 注册用户 27/今日活跃 4/本周 9/月活 18 |
| 最近操作 | PASS | 实时显示登录/创建/删除操作 |
| 通知面板 | PASS | 危急值告警和待办事项正常 |
| 侧边栏折叠 | PASS | 折叠后仅图标,悬停展开子菜单 |
| Admin Dashboard | FAIL | /#/health/admin-dashboard 显示 403 |
M-02: Admin Dashboard URL 直接访问 403
- 严重性: MEDIUM
- 说明: AdminDashboard 组件存在但路由未注册,该页面可能仅作为工作台内嵌组件使用
- 修复: 移除直接访问路径或正确注册路由并配置权限
- 预计工时: 1h
7. 主题切换 — PASS (4/4)
| 主题 | 结果 | 说明 |
|---|---|---|
| 信任蓝(默认) | PASS | 蓝色系侧边栏 |
| 深邃夜色 | PASS | 深色侧边栏和页头 |
| 翡翠清雅 | PASS | 绿色系 |
| 温润东方 | PASS | 暖色调 |
| 持久化 | PASS | localStorage hms-theme 保存,刷新后保持 |
8. 控制台警告
| 类型 | 消息 | 严重性 |
|---|---|---|
| WARN | [antd: Drawer] width is deprecated. Please use size instead. |
LOW |
| WARN | [antd: List] component is deprecated. And will be removed in next major version. |
LOW |
小结
- 完全通过领域: 5/8(登录/健康数据/咨询/工作台/主题)
- 存在问题领域: 3/8(患者管理/预约/仪表盘路由)
- HIGH 问题: 2 个 | MEDIUM 问题: 2 个 | LOW 问题: 2 个