以太网、Wi-Fi 与蜂窝网络故障切换:验收测试应覆盖哪些内容
工业物联网网关可能显示以太网链路已建立、Wi-Fi 已连接或蜂窝网络已注册,但遥测数据实际上已无法到达目的地。因此,有效的以太网、Wi-Fi 与蜂窝网络故障切换验收测试,应跟踪一条记录从采集到约定应用端点的完整过程,还应验证交付中断期间以及首选网络恢复后的系统行为。
以下框架用于编写项目专属的验收要求,不代表任何 Obeita 产品经过测试的性能或得到保证的能力。
断开任何连接前,先明确交付约定
约定支持的接口、优先级顺序、允许的蜂窝网络使用量,以及回切采用自动、手动还是定时方式。以太网、Wi-Fi 和蜂窝网络不一定按此顺序排列优先级。识别共用依赖项:两个接口如果使用同一个上游路由器、DNS 服务或后端,可能同时失效。
准备隔离的测试环境、经批准的故障注入方法、恢复流程、具有代表性的数据载荷,以及实际使用的固件和配置。记录接入点设置、SIM/APN 与运营商、IP 版本、路由与防火墙规则、DNS 配置、消息代理设置和证书要求。使用已脱敏且不含凭据的配置导出文件。
为网关、网络、消息代理和最终消费端配置观测手段。为每条测试记录分配稳定的事件标识符、源时间戳和序列号。同步时钟并记录其不确定度;本地耗时测量使用单调时钟。明确成功是指收到消息代理确认、完成数据库持久化,还是达成其他可观测的业务结果。
健康状态测试不能止于链路指示灯
分别检查本地接入、地址分配与路由、DNS、TCP/TLS、消息代理访问以及应用处理。ping 测试不会验证 DNS 或消息代理。TLS 握手成功也不能证明遥测记录已被处理。
对于使用 NetworkManager 的网关,文档规定的连通性检查会请求已配置的 URI 并评估响应。该结果仅说明所配置的检查成功,并不是应用验收测试。应检查配置,而不是默认连通性监测已经启用。参见NetworkManager 连通性参考文档。
通过各候选路径预定的接口和路由分别进行探测,并检查其 DNS 行为。否则,健康的活动连接可能掩盖备用路径故障。区分单一路径故障与所有路径共用的后端服务中断;反复切换接口无法修复已失效的共用服务。

明确切换与回切决策
规定探测目标、间隔、超时、连续失败阈值、备用路径就绪检查、重试退避策略和最小驻留时间。设定恢复到首选链路前所需的健康探测阈值或稳定持续时间。这种滞回机制可避免短暂恢复触发反复切换。
记录每类故障对应的预期操作。例如,WAN 黑洞可能需要切换路径,而应用整体拒绝请求则应触发独立告警和有界重试。无效证书必须继续作为错误处理,不能因此禁用证书校验。TLS 1.3 定义了与证书相关的错误警报;应单独记录错误原因,与可达性超时区分开来。
预期连接会变化,并验证数据恢复
切换接入网络可能改变源地址或 NAT 映射。普通 TCP 通过两端的套接字标识连接,具体见RFC 9293。仅仅发生路由变更,并不能说明现有连接仍然有效。应明确测试连接中断检测、TCP 重连、TLS 身份认证和 MQTT 重连。
MQTT 会话连续性与网络连接是两回事。验证 Client ID、Clean Start、Session Expiry Interval、session-present 的处理、重新订阅以及在途消息的行为。MQTT QoS 约束的是一个发送方与一个接收方之间的交付;QoS 1 可能产生重复消息。即使是 QoS 2,本身也不能保证下游数据库或设备只产生一次实际效果。这些边界依据OASIS MQTT 5.0 规范第 4.1–4.6 节。
检查实际使用的消息代理支持哪些功能。例如,AWS IoT Core 文档说明其支持 QoS 0 和 1,而不支持 QoS 2。测试计划必须与所选服务相匹配。
如果要求离线缓冲,应规定何时视为完成持久化写入、字节数或记录数上限、保留期限和溢出策略。在存在尚未确认的记录时执行断电重启。在最终消费端核对事件 ID,测试重复记录的幂等处理,并分别保留源时间戳和到达时间。去重窗口应覆盖允许的最长重试与重放间隔。按数据源或数据流定义顺序要求,不要假设多个发布者之间存在全局顺序。应将重放与新数据流量同时进行测试,避免恢复过程无限期挤占新测量数据的处理机会。
用故障矩阵覆盖不同失效模式
从每一种允许的初始接口出发,执行各项适用测试,并在约定的载荷速率和大小下重复切换。记录注入的故障、预期决策、实际切换、告警、时间数据及记录核对结果。
| 注入条件 | 需要观测的内容 |
|---|---|
| 网关断电重启 | 重启后的配置、时钟状态、会话恢复和持久化缓冲区内容。 |
| 拔除以太网网线、Wi-Fi 断连或蜂窝服务中断 | 故障检测、符合条件的备用路径选择,以及应用交付恢复。 |
| 本地链路仍正常时发生上游黑洞 | 即使链路指示正常,仍能观察到健康检查超时和相应策略决策。 |
| DNS 故障 | 新发起与缓存查询的行为、切换后的解析器选择,以及明确的故障报告。 |
| TLS、消息代理或下游应用中断 | 区分错误类别;进行有界重试和缓冲,避免失控的路径切换。 |
| 间歇性丢包、延迟或链路反复上下线 | 滞回机制、驻留时间、重试限制、切换次数和蜂窝网络使用量。 |
| 所有路径不可用,随后持续恢复 | 缓冲区上限与溢出行为、积压记录核对,以及策略控制的回切。 |
将应用恢复与路由变更分别测量
为故障注入、故障判定、备用路径就绪、首条新事件被接收,以及积压数据重放完成分别记录时间戳。除恢复时间外,还应报告观测到的最大应用交付间断。路由更新很快,并不排除重连延迟很长或队列持续增长。

示例测试,仅作说明,并非产品基准:将以太网设为首选路径,将蜂窝网络设为符合条件的备用路径。在持续生成带编号记录的同时,阻断以太网上游流量,但保持物理链路载波。观察配置的故障阈值,确认流量通过蜂窝网络发出,并在应用端核对新记录与缓冲记录。先间歇性恢复以太网,再持续恢复,以验证约定的回切规则。
客户必须在执行前给出通过或失败的判定值:最大应用中断时间、约定端点允许的记录丢失和重复处理效果、缓冲容量、重放完成时间、顺序保证范围、切换次数上限、蜂窝数据预算以及恢复稳定性时间间隔。记录测试次数、工作负载和网络条件;不能用示例数字代替实测结果或合同要求。
验收检查清单
- 批准拓扑、交付端点、故障矩阵和可量化限值。
- 测试切换前,独立验证每条符合条件的备用路径。
- 记录决策原因和时间戳,而不仅是接口状态。
- 恢复后核对缺失、重复、过期和乱序记录。
- 重复断电、所有路径中断以及持续恢复后的回切测试。
- 保留配置版本、日志、证据和偏差记录,供验收签核。
准备网关故障切换评审
请使用脱敏后的网络拓扑、接口优先级、验收限值和具有代表性的载荷样本,与 Obeita 讨论工业物联网网关需求。分享前请移除凭据、私有端点和生产标识符。这些资料有助于讨论所需行为与测试范围,而不会预设尚未确认支持的功能。
有关相关集成范围,请参阅已交付的多接口物联网网关集成项目;有关嵌入式问题调查,请参阅 Obeita 的固件与 BSP 诊断服务。如需制定项目专属的验收计划,请联系 Obeita。