根因:主包 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
98 lines
4.3 KiB
Markdown
98 lines
4.3 KiB
Markdown
# HMS V3 Beta 多学科综合测试报告 — 执行摘要
|
||
|
||
> 测试日期: 2026-05-21 | 分支: feat/media-library-banner
|
||
> 测试团队: 5 个专家团队并行(Web功能 / 性能兼容 / 小程序 / API / 静态分析)
|
||
> 报告版本: v1.0
|
||
|
||
## 1. 测试范围与方法
|
||
|
||
| 维度 | 方法 | 工具 |
|
||
|------|------|------|
|
||
| Web 前端功能 | 核心业务流程操作 + 边缘场景 | chrome-devtools MCP |
|
||
| Web 性能/兼容性 | Lighthouse + Core Web Vitals + 5 种视口 | chrome-devtools MCP |
|
||
| 小程序功能 | 5 Tab 页 + 核心功能 + API 验证 | weapp-local MCP |
|
||
| API 端点 | 69 个测试用例(CRUD/权限/注入/边界值) | curl/Bash |
|
||
| 静态代码分析 | TypeScript 类型/安全/性能反模式 | Grep/Read/Bash |
|
||
|
||
## 2. 总体评估
|
||
|
||
| 指标 | 值 |
|
||
|------|-----|
|
||
| **综合质量评级** | **B- (6.5/10)** |
|
||
| **测试总项数** | **248 项**(功能 54 + 性能 26 + API 69 + 静态 99+) |
|
||
| **综合通过率** | **78.2%** |
|
||
| **发现问题总数** | **36 个** |
|
||
| **CRITICAL** | **4 个** |
|
||
| **HIGH** | **8 个** |
|
||
| **MEDIUM** | **15 个** |
|
||
| **LOW** | **9 个** |
|
||
|
||
## 3. 关键发现
|
||
|
||
### CRITICAL(阻塞 Beta 发布)
|
||
|
||
| ID | 来源 | 问题 | 影响 |
|
||
|----|------|------|------|
|
||
| C-01 | 小程序 | `inject_auth` 写明文键,`request.ts` 只读加密键,所有 API 无 token | 小程序所有认证功能不可用 |
|
||
| C-02 | 小程序 | `secure-storage.ts` UTF-16 截断中文,加密存储后解密损坏 | 用户数据(含中文名)存储失败 |
|
||
| C-03 | Web 兼容 | 移动端 375px 表格不可用,无响应式替代布局 | 移动端用户完全无法操作 |
|
||
| C-04 | Web 兼容 | 移动横屏 812x375 内容区域空白 | 横屏模式页面无法使用 |
|
||
|
||
### HIGH(影响核心业务流程)
|
||
|
||
| ID | 来源 | 问题 | 影响 |
|
||
|----|------|------|------|
|
||
| H-01 | Web 功能 | 患者创建表单缺少前端必填校验,空表单提交成功 | 脏数据进入系统 |
|
||
| H-02 | Web 功能 | 预约列表 API 网络连接异常,无数据显示 | 预约管理不可用 |
|
||
| H-03 | Web 兼容 | 平板 768px 表格数据不加载 | 平板端不可用 |
|
||
| H-04 | Web 性能 | 患者列表 LCP 2643ms(render delay 99.8%) | 页面加载慢 |
|
||
| H-05 | Web 性能 | 仪表盘 API 每个端点重复调用 4 次 | 不必要的网络/服务器负载 |
|
||
| H-06 | API | 健康数据 DTO-Entity 映射断裂,测量值全存 null(通过率 20%) | 日常监测功能实质失效 |
|
||
| H-07 | API | 500 字符文章标题导致 HTTP 500 内部错误 | 应返回 400 验证错误 |
|
||
| H-08 | 静态分析 | Web 前端 10+ 处 `.catch(() => {})` 静默吞错 | 错误不可追踪 |
|
||
|
||
## 4. 各维度通过率
|
||
|
||
| 测试域 | 通过率 | 评级 |
|
||
|--------|--------|------|
|
||
| API 端点(69 项) | 82.6% | B |
|
||
| 小程序 UI 渲染(38 项) | 100% | A |
|
||
| 小程序功能(应用内 3 项) | 0% | F(token 问题) |
|
||
| 小程序功能(API 直测 4 项) | 100% | A |
|
||
| Web 前端功能(8 大领域) | 62.5%(5/8 完全通过) | B- |
|
||
| Lighthouse Desktop | 94/100/100 | A |
|
||
| Lighthouse Mobile | 94/100/100 | A |
|
||
| Web Desktop 视口 | PASS | A |
|
||
| Web Tablet 视口 | FAIL | D |
|
||
| Web Mobile 视口 | FAIL | F |
|
||
|
||
## 5. 发布就绪度判定
|
||
|
||
### 结论: **CONDITIONAL BETA** — 需修复 4 个 CRITICAL + 3 个 HIGH 后可发布
|
||
|
||
### 阻塞项(必须修复,预计 3-4 天)
|
||
|
||
1. **C-01/C-02 小程序 token/加密问题** — 统一 `safeGet` fallback + 修复 UTF-8 编码(预计 3h)
|
||
2. **C-03/C-04 移动端响应式** — 添加卡片视图 + 修复 768px 断点(预计 2d)
|
||
3. **H-01 患者表单验证** — 前端添加 `form.validateFields()`(预计 1h)
|
||
4. **H-06 健康数据 DTO 映射** — 修复字段映射(预计 4h)
|
||
5. **H-07 文章标题 500 错误** — 添加 DTO 长度校验(预计 30min)
|
||
|
||
### 建议项(Beta 后迭代,预计 5-7 天)
|
||
|
||
- M-01~M-05: 对比度/暗色模式/API 校验/XSS/搜索等
|
||
- L-01~L-09: 弃用警告/i18n/内联样式等
|
||
|
||
## 6. 报告索引
|
||
|
||
| 章节 | 文件 |
|
||
|------|------|
|
||
| 执行摘要(本文档) | `01-executive-summary.md` |
|
||
| Web 前端功能测试 | `02-web-functional.md` |
|
||
| Web 性能与兼容性测试 | `03-web-perf-compat.md` |
|
||
| 小程序功能测试 | `04-miniprogram.md` |
|
||
| API 深度测试 | `05-api-deep-test.md` |
|
||
| 静态代码分析 | `06-static-analysis.md` |
|
||
| 跨部门头脑风暴 | `07-brainstorm.md` |
|
||
| Beta 就绪验收清单 | `08-beta-checklist.md` |
|