Skip to content

test(设备网关): 补充TCP上行监控回归测试 - #789

Merged
zhou-hao merged 1 commit into
2.12from
codex/add-tcp-monitor-regression-test
Aug 24, 2026
Merged

test(设备网关): 补充TCP上行监控回归测试#789
zhou-hao merged 1 commit into
2.12from
codex/add-tcp-monitor-regression-test

Conversation

@zhou-hao

Copy link
Copy Markdown
Member

目的

  • 补充社区版 TCP 设备网关上行监控集成回归测试。
  • 防止协议手动上报与 codec 返回消息在 monitor 接入后被重复提交平台。

核心变动

  • 模块 / 文件:tcp-component 新增 TcpServerDeviceGatewayMonitorTest
  • 行为变化:不修改生产行为;新增真实网关启动、连接订阅和设备注册测试。
  • 边界或约束变化:同一 TCP 原始报文分别产生手动上报消息和 codec 返回消息,断言两条消息各进入平台与 monitor 一次。
  • 阶段提交:58ce9fcae test(设备网关): 补充TCP上行监控回归测试

设计与测试目标

  • 任务契约:不适用;本次为单一既有行为回归测试补强,不新增后端契约。
  • 权威文档:不适用;生产行为和长期协议契约未变化。
  • 用户确认:已确认补充社区版测试并提交 PR。
  • 测试目标:覆盖 TCP 原始报文、context.handleMessage(...) 手动上报、codec 返回消息、平台处理及 monitor 包装完整路径;断言每条消息只处理一次。
  • 注释 / 公共契约:不适用;未修改生产类、SPI 或公共契约,测试文件已包含项目许可证头。
  • 数据权限:不适用;不涉及 CRUD 或 AssetsHolder。
  • 数据库兼容与性能:不适用;不涉及数据库或 SQL。
  • 链路追踪:不适用;仅新增测试,生产链路已有 FluxTracer
  • MBean 运维可观测性:不适用;不涉及常驻任务、缓存、队列或执行器。
  • 系统性求解:不适用;生产实现未变,回归不变量已由手动消息与返回消息两个代表来源直接验证。

测试结果

  • 测试命令:JAVA_HOME=$(/usr/libexec/java_home -v 17) mvn -o -pl jetlinks-components/network-component/tcp-component -am -Dtest=TcpServerDeviceGatewayMonitorTest -Dsurefire.failIfNoSpecifiedTests=false test
  • 证据来源与复用判断:本地 JDK 17 最终候选 tree 8afa4e3fcf52aae04e93ac4506a4251e5b66c97b 定向补跑;提交后 Git tree 未变化,可直接复用。
  • 新增/更新测试:TcpServerDeviceGatewayMonitorTest#manualAndReturnedTcpUpstreamShouldUseMonitorChainOnce
  • 单元测试:Surefire 共 1 个测试,通过 1,失败 0,错误 0,跳过 0;关联 Reactor 10 个模块均构建成功。
  • 集成测试结果或不适用原因:进程内 TCP 网关集成场景通过;覆盖网关启动、连接订阅、协议解码、设备注册和平台消息处理,不依赖外部 TCP 服务。
  • 压力测试结果或不适用原因:不适用;仅增加单报文链路回归测试,不修改性能路径。
  • 覆盖率:JaCoCo 0.8.7;handleTcpMessage0 行覆盖 17/19(89.5%)、分支覆盖 3/6(50%);TcpConnection 行覆盖 91/134(67.9%)。

文档同步情况

  • 已同步:无。
  • 未同步:无。
  • 说明:生产行为和权威契约未变化;测试证据保留在 PR 与 CI 中。

风险与说明

  • 影响范围:仅社区版 tcp-component 测试源码。
  • 兼容性与发布边界:不涉及已发布兼容性;无生产代码变化。
  • 注释 / 公共契约:不涉及;未修改公共类或 SPI。
  • 数据库兼容与 SQL 性能:不涉及。
  • 链路追踪 / 可观测性:生产链路已有追踪,本次不修改。
  • MBean / 运维可观测性:不涉及。
  • 未覆盖场景:未启动真实 TCP Socket;本测试聚焦设备网关收到报文后的上行处理与 monitor 调用次数。
  • 已知限制:协议若手动处理后又返回同一条消息,仍违反 FromDeviceMessageContext 的空流契约,本测试不把该错误用法视为网关自动去重责任。
  • 回滚方式:回滚提交 58ce9fcae 即可,仅删除新增测试。

@zhou-hao
zhou-hao merged commit 523aee7 into 2.12 Aug 24, 2026
2 of 3 checks passed
@zhou-hao
zhou-hao deleted the codex/add-tcp-monitor-regression-test branch August 24, 2026 07:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant