项目:智能随访 — 可穿戴设备体征数据采集平台
版本:v5.06-v10
6.2 功能测试方法
以下为示例
6.2.1 手表数据上传测试
a. 测试对象
智能随访微信小程序 v5.06-v10 的"可穿戴设备体征数据采集与上传"功能。
涵盖蓝牙连接、患者门诊号绑定、体征数据采集、HTTPS 同步至云端 MySQL 数据库的端到端链路。
b. 测试目的
验证可穿戴智能手表(Veepoo S101)通过微信小程序采集患者体征数据后,
能否经由 HTTPS 同步至六元 MySQL 数据库(h6dp_suifang.wearable_device_data),
并按门诊号正确归属患者。
验证范围:
- 蓝牙连接成功率与稳定性
- 体征数据完整性(采集时间 / 上传时间 / 数值字段)
- 患者归属正确性(门诊号写入大 JSON 每条记录)
- 多患者轮流采集场景(同一台手表换人)
- 离线缓存与网络恢复重传
c. 测试设备
| 类别 | 项目 | 规格 / 数量 |
| 硬件 |
Veepoo S101 智能手表 |
BLE 4.0+,二类医疗器械注册证 × 1 块 |
| 测试手机 |
iOS 14+ 或 Android 12+,蓝牙 4.0+,已安装微信最新版 × 1 部 |
| 软件 |
微信小程序 |
"智能随访" v5.06-v10 体验版(已加入体验成员白名单) |
| 后端服务 |
https://dc.ncrc.org.cn/api2 + 六元 MySQL h6dp_suifang |
| 环境 |
网络 |
移动数据或 WiFi(可访问公网) |
| 测试门诊号 |
形如 TEST_20260508_001(不与生产患者冲突) |
d. 测试步骤
阶段一:环境准备
- 测试人员在手机微信中扫描"智能随访"体验版二维码,进入小程序。
- 确认小程序顶部右上角显示橙色"测试版 5.06-v10"角标。
- 确认手表已开机、电量 ≥ 20%、佩戴在测试人员手腕上贴合皮肤。
- 确认手机蓝牙已打开,且微信"附近的设备"权限已授权(Android 12+ 必须)。
阶段二:蓝牙连接
- 在小程序首页正中央可见圆形 ⌚ logo + "智能随访"标题,下方为白色虚线状态卡("○ 未连接设备 / 请连接您的智能手表")。
- 点击底部蓝色大按钮"🔍 连接智能手表",跳转至"设备扫描"页。
- 等待 5–10 秒,扫描列表中应出现
S101 设备名 + MAC 地址(形如 9B:B8:07:E6:E6:EE)。
- 点击列表中目标 S101 设备项,开始连接(约 5 秒)。期间可见"连接中"提示。
- 连接成功后自动跳回首页:状态卡变为绿色渐变,显示"✓ 智能手表 · 电量 XX%",卡片右上有白色脉冲圆点。
- 状态卡下方应显示绿色 ●"数据自动同步中"闪烁指示。
阶段三:患者门诊号绑定(高级模式)
- 在首页 3 秒内连续快速点击顶部圆形 ⌚ logo 共 5 次,触发隐藏的管理员入口。
- 点击成功后弹出 toast:"已切换至高级模式",下方页面延伸出"— 管理员功能 —"分隔线。
- 分隔线下出现红色警示条"⚠ 未输入门诊号, 数据无法归属患者"。
- 点击红条右侧"输入门诊号"按钮,弹出输入框。
- 在输入框填入测试门诊号
TEST_20260508_001,点击"确定"。
- 红条变为蓝色:"当前患者 · 门诊号 TEST_20260508_001" + "切换患者"按钮。
阶段四:体征数据采集
- 在手表侧键长按 1 秒唤醒手表,进入主菜单。
- 选择"血压"测量项,等待手表完成测量(约 30 秒),表盘显示结果(例:120/80 mmHg)。
- 重复测量"心率"(自动监测)、"血氧"(自动 + 手动)、"体温"(约 10 秒)。
- 每完成一次测量,手机端首页"数据自动同步中"指示应短暂加速闪烁,表示有新数据上传。
- 若需测多名患者:点击高级模式中"切换患者"按钮 → 输入新门诊号(例如
TEST_20260508_002) → 让另一位测试者佩戴同一手表,重复采集。
阶段五:服务端数据验证
- 在测试电脑(任何可访问公网的设备)打开终端 / PowerShell / 浏览器开发者工具,执行以下查询:
-
通过 curl 查询:
curl -s "https://dc.ncrc.org.cn/api2/api/data?patientNo=TEST_20260508_001" | python3 -m json.tool
- 检查响应 JSON 应包含:
count: 大于 0 的整数(有命中记录)
records[0].deviceId: 已分配的设备主键(形如 9)
records[0].data: 含 "血压" / "心率" / "血氧" / "体温" 等键,每个键对应数组
- 每条数据记录应含字段:
"门诊号": "TEST_20260508_001"、"采集时间"(ISO 8601)、"上传时间"(ISO 8601)
- 核对采集时间与手表上的实际测量时间相差应 ≤ 5 秒(北京时间 = UTC + 8)。
- 如测试了多名患者,重复查询第二个门诊号
?patientNo=TEST_20260508_002,应仅返回第二名患者的记录,不与第一名混淆。
- 整理测试记录(手机截图、终端输出、JSON 响应),编写测试报告。
e. 通过判定标准
| 判定项 | 通过标准 |
| 蓝牙连接成功率 |
10 次连接 ≥ 9 次成功(≥ 90%) |
| 数据完整性 |
数据库每条记录 采集时间 与 上传时间 字段均非空,时序正常 |
| 数据归属正确性 |
服务端记录的 门诊号 与小程序输入完全一致,无错号 |
| 多患者隔离 |
按 ?patientNo= 查询返回结果仅包含该门诊号数据 |
| 数据上传时延 |
从手表完成测量到云端 API 可查询 ≤ 60 秒 |
| 离线兜底 |
关闭小程序前台 5 分钟后重新打开,pending 队列数据自动重传成功 |
说明:本测试为功能验证,不评估性能(如吞吐量、并发连接、长时间稳定性)。
性能测试需另行设计。
f. 测试记录与备注
- 测试数据使用前缀
TEST_ 命名门诊号,方便结束后通过运维接口批量清理。
- 测试期间保持手机微信小程序处于前台,避免系统挂起影响 BLE 数据上传时延。
- 若测试中途出现连接失败:可在小程序"管理员功能"区域查看
设备名称 / MAC 地址 / 固件版本 / 电量 协助排查。
- 测试结束后,第三方测试人员保留以下证据:
- 手机端关键步骤截图(连接成功、门诊号输入、同步指示)
- 终端 curl 查询输出(含完整 JSON 响应)
- 手表端测量结果照片(与服务端数值核对)
- 失败案例处理:记录复现步骤、当前小程序版本、手机型号、网络环境,附截图至测试报告附件。
注意:本文档涉及的接口 https://dc.ncrc.org.cn/api2 为生产环境,请勿对真实患者数据执行删除等破坏性操作。
仅以 TEST_ 前缀的测试数据进行验证。