ITPub博客

首页 > 自动化运维 > 大规模网络运维 > 物联网测试实战:MQTTX客户端工具的使用指南

物联网测试实战:MQTTX客户端工具的使用指南

原创 大规模网络运维 作者:Atstudy技术社区 时间:2025-01-16 10:17:33 0 删除 编辑

我的目前所在公司所涉及到的行业属于物联网行业,因此在测试过程中需要了解到物联网行业的一些概念和辅助测试的工具等等。最近在测试物联网平台时接触到了一款MQTTX的客户端软件。网上也是可以很方便找到该软件的简介的,简单来说就是一个基于MQTT协议的客户端工具,它允许用户方便地发布和订阅MQTT消息。

而MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息协议,专为在计算能力有限、低带宽或不可靠的网络中工作的远程设备而设计。它基于发布/订阅模型,适用于物联网(IoT)通信,可以广泛用于各种需要设备间通信的场景。

图1、MQTT设备通信示意图

  我之所以用到这款工具,其实是为了模拟设备通信并且构造测试数据,包括设备上报数据到物联网平台和通过物联网平台下发指令到设备实现远程控制。我们的物联网平台是基于Jetlinks平台搭建的,因此在使用MQTT发送消息时需要结合jetlinks  IOT平台使用,下面介绍一下MQTTX软件的基础功能使用。

      可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。同时我邀请你进入我们的软件测试学习交流平台,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,了解测试行业的最新趋势,助你快速进阶Python自动化测试/测试开发,稳住当前职位同时走向高薪之路。

  客户端工具下载地址:https://mqttx.app/downloads,可以选择适合自己的版本进行下载
图2、下载界面
  在下载界面底部导航栏可以找到MQTT工具的入门教程,教程内容很丰富,会介绍到MQTT的工作原理和工作流程,以及工具具体的配置使用等知识,适合新手学习。
  下面讲一下如何创建连接。进入到MQTT工具默认页面,点击左上角 + 按钮,打开新建连接编辑窗口,输入一些连接信息,最后点击右上角Connect按钮进行连接。
图3、客户端工具默认界面
图4、连接编辑界面
  其中的用户名、密码是需要JetLinks官方协议MQTT用户名密码生成工具进行生成
图5、密码生成工具
  连接成功后,会自动给物联网平台发送一条上报消息
图6、客户端连接成功界面
  此时在物联网平台,也可以查看到设备处于在线状态
图7、物联网平台设备详情界面
  下面是我在测试过程中主要用到的消息指令,消息指令采用的是JSON格式,指令中的productId和deviceId根据实际情况填写即可。还有一些其他的指令,大家可以在MQTT使用教程中查找。
   使用MQTT X模拟设备上报属性
  Topic:/{productId}/{deviceId}/properties/report
  {
   "deviceId": "1642736581599657984",
   "properties": {
   "temperature": 38.5
   }
  }
   平台调用设备指令
  Topic: /{productId}/{deviceId}/function/invoke
  消息正文:
  {
      "messageId": "1791305771732049921",
      "deviceId": "1791281558811975681",
      "timestamp": 1715915551489,
      "functionId": "cycleSample",
      "inputs": [{
          "name": "totalSampleTime",
          "value": 1
      }, {
          "name": "singleSample",
          "value": 23
      }, {
          "name": "cycleTime",
          "value": 2
      }, {
          "name": "delayTime",
          "value": 0
      }],
      "messageType": "INVOKE_FUNCTION"
  设备上行回复平台
  Topic: /{productId}/{deviceId}/function/invoke/reply
  消息格式:
  {
      "timestamp": 1715915525652,
      "messageId": "1791305771732049921",
      "output": {
          "success": "ok"
      },
      "success": true
  }
  客户端接收到的消息和发送出去的消息,我们都可以在消息记录中查看到。在进行消息发送时,可能会遇到连接超时的情况,显示超时通常是以下几种情况引起的:
  1、设备回复时未携带messageId
  2、设备回复时messageId和指令报文内messageId不一致
  3、设备10s未回复消息或超过10s回复消息
  4、回复报文超长,超过网络组件接收报文数据大小
  我自己在最开始使用该工具的时候,就频繁遇到超时的情况,后来才知道原因是上面列出的第3点
  我们构造数据的过程其实就是模拟设备和物联网进行通信的过程,指令发出后的执行结果我们可以在物联网平台和MQTTX客户端工具中查看到。
图8、设备上报给平台的属性
  图8里面我们看到有八种指标数据,对应设备的八种指标参数,都是设备上报给物联网平台的,以上只是我举例说明,实际业务场景下的指标可能多达几十上百个。
图9、平台远程调控设备后的响应结果
  图9是平台远程调用设备发出的消息指令,我们在MQTTX客户端工具中可以查看到
  以上就是我在测试物联网平台过程中使用MQTTX客户端工具的实际使用经验,目前也在逐步熟悉过程中,还有一些其他丰富的功能待学习,欢迎大家指正。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70034708/viewspace-3065622/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2023-10-23

  • 博文量
    99
  • 访问量
    96504