三端联调测试计划(v1)

目标:固件 ↔ 云端 ↔ GUI 端到端跑通,不只各端自测。

联调阶段

阶段 条件 内容
L1 虚拟联调 云端 P1 + GUI 产品版第一期完成 虚拟设备(host 程序,精确模拟 F407 发出的精简版 telemetry 和 cmd 处理)→ EMQX → 云端入库/API → GUI 展示;全链路无真实硬件
L2 真机联调 固件网关集成完成 + 有 F407 硬件 真实 F407 网关替掉虚拟设备,其他不变;验证 3.5 字符间隔、断网续传、遗嘱消息等硬件相关行为
L3 压力联调 L2 通过 多设备并发、断网重连、24h soak

虚拟设备(关键!)

云端 P1 的模拟数据发生器不是随便造 JSON,必须精确模拟 F407 的行为:

这样 L1 跑通 = 云端和 GUI 已经能吃固件的真实现场数据,L2 只是换数据源。

联调测试矩阵

编号 链路 断言
T1 设备→云→GUI 虚拟设备发 telemetry,5 秒内 GUI 实时监控页显示对应点位值
T2 状态 retained 虚拟设备先上线再启动云端/GUI,仍能拿到 online:true(retained 生效)
T3 命令往返 GUI 点"下发 set_config",虚拟设备收到 cmd 并回 cmd_ack,GUI 显示成功(cmd_id 配对正确)
T4 遗嘱 kill 虚拟设备,status 变为 online:false(MQTT 遗嘱)
T5 数据类型 telemetry 带 data_type=f32 的点位,GUI 显示的浮点值与发送值一致(字节序正确)
T6 断网续传 断 EMQX 10 分钟再恢复,云端数据无丢失(固件 edge-engine 续传;L1 用虚拟设备模拟积压重发)
T7 多租户隔离 tenant A 的 GUI 看不到 tenant B 的设备(ACL/JWT 生效后测,P2)

三端各自的联调义务

准入/准出