使用Postman测试MQTT协议接口

MQTT概述

MQTT(Message Telemetry Transport)是一种用于物联网(IoT)的消息传递协议。它的使用范围从家庭自动化和可穿戴设备的小型设备到大型工业机械的自动化。它是一种轻量级技术,以发布/订阅模式为模型,其中连接到单个代理的客户端可以将消息发布到不同的主题,并订阅主题以接收来自其他连接的客户端的消息。消息以低带宽使用、低功耗和高效的信息分发方式传输到一个或多个接收器,所有这些都增加了MQTT的流行度。

使用Postman使用MQTT API

Postman为您提供了一个客户端接口来调试基于MQTT的API。如果您尚未安装Postman桌面应用程序,请下载并安装该应用程序。

您可以创建新的MQTT请求、连接到代理、订阅主题、发布消息以及查看从代理接收的消息。

使用MQTT请求 界面

Postman中的MQTT请求包括各种工具、视图和控件,以帮助您调试和记录MQTT API。本主题重点介绍请求接口的各个部分并说明如何使用它们。

创建一个新的MQTT请求

通过选择侧边栏中的New按钮创建一个新的MQTT请求,这将打开Create new对话框。从列表中选择MQTT以在新选项卡中打开一个空白MQTT请求。

您还可以通过选择选项卡栏中的"新建选项卡"图标、选择请求名称旁边的"请求类型"按钮(无标题请求)并从列表中选择MQTT来创建新的MQTT请求。

MQTT请求接口

在请求接口中,您可以添加配置以连接到MQTT代理、订阅主题和发布消息。此外,您可以随请求一起添加遗嘱详细信息、授权详细信息、属性和设置。

  • 输入URL- 这是您输入经纪人地址的地方,例如test.mosquitto.org.某些MQTT服务还要求您定义端口号。您可以通过将端口号附加到URL来在URL中定义端口号。比如说,test.mosquitto.org:1883.

要通过TLS连接到代理,您需要使用mqtts://作为URL方案。例如,mqtts://test.mosquitto.org。

    • MQTT版本-每个MQTT版本在协议功能方面都有一些区别。Postman支持MQTT的两个主要版本:3.1.1和5.0。默认情况下选择版本5.0。
    • 客户端ID -客户端ID是区分连接到代理的每个客户端的标识符。默认情况下,Postman为每个请求生成一个随机的客户端ID。您可以通过选择客户端ID并输入自定义客户端ID来覆盖此设置。
  • 消息- 这是您编写消息并将其发布到代理的地方。您可以在文本区域中编写消息,输入主题名称,然后选择发送发布消息
    • 消息类型-您可以将消息类型定义为Text、JSON、Base64或Hexadecimal,以便Postman正确呈现它。
    • 更多操作图标 - 您可以在此处为每条消息添加自定义属性和设置。设置包括以下内容:
      • 专题讨论
      • 回应主题
      • 相关性数据
      • 消息过期间隔
      • 内容类型
      • 有效载荷格式指示符
    • 保留- Retain是一个标志,它要求代理保留在主题上发送的最后一条消息,并将其发送给新的订阅者。代理将保留最后一条消息,即使新的订阅者在消息从客户端发送后加入网络。您可以通过选择更多操作图标来配置邮件的保留标志并切换保留开关.
    • QoS -服务质量(QoS)定义了消息传递的保证。您可以通过从邮件列表中选择QoS级别来配置邮件的QoS级别。
    • 添加主题-您可以定义消息的主题名称。代理使用主题名将消息路由到适当的订阅者。
    • Send -配置了有效负载后,选择Send将消息发布到代理。
  • 主题-这是您可以列出和记录多个主题并订阅它们的地方。您还可以为列出的每个主题配置QoS级别。
  • 最后遗嘱- Last Will是当客户端从代理断开连接时由代理发送给订阅者的消息。您可以通过转到最后遗嘱选项卡,输入消息,并配置其他设置,如主题名称、QoS级别和保留标志。您还可以通过选择更多操作图标来配置延迟间隔,并以毫秒为单位输入延迟间隔。
  • 授权-使用基本身份验证授权您的连接。您可以使用Authorization选项卡以用户名和密码的形式将凭据传递给代理。
  • 属性-您可以将自定义属性添加到您的请求。这些属性在连接到代理时发送。
  • 设置-您可以通过转到设置选项卡为您的请求配置其他设置。您可以配置请求超时,启用/禁用SSL证书验证,清理会话和自动重新连接。

MQTT响应

当您连接到代理时,响应区域将创建一个消息流,在单个会话中显示不同主题的已发布和已接收消息(直到您选择Disconnect)。

消息-消息流在时间轴中显示已发布和已接收的消息。您可以展开消息以查看消息详细信息,如主题名称、QoS级别、保留标志和消息类型。您可以使用搜索栏搜索特定的邮件,按接收和发送过滤邮件,并使用"清除邮件"清除邮件流。

可视化-可视化选项卡以图形格式显示消息流,这是一种更易于理解的查看遥测数据的方式。该界面分为多个窗口,每个主题您已收到的消息。对于JSON响应,第一个字段的值绘制在图上。您可以更改所选字段,并添加更多字段以并排比较值。您还可以将可视化样式从折线图更改为条形图。

使用右侧边栏

右侧边栏让您可以访问更多工具和信息,如文档,评论和请求详细信息。打开一个GraphQL请求,然后在右侧边栏中选择一个选项:

  • 索取文件- 选择文档图标,查看请求的描述。您可以通过选择编辑图标来添加描述在描述旁边,然后使用Postman的内置编辑工具.
  • 评论- 选择注释图标在开发API时与您的团队成员协作。您可以使用@标记其他人以提出问题、提供反馈和讨论您的API。
  • 请求信息- 选择信息图标查看有关请求的更多详细信息,如请求ID和创建日期。

创建第一个MQTT请求

在这个MQTT请求的示例中,您将连接到公共代理,订阅主题,发布消息并可视化响应。

创建MQTT请求

在Postman中,选择New MQTT以创建新请求。(In Postman桌面应用程序,您也可以选择Ctrl +N或Ctrl+N,然后选择MQTT)。

通过Postman连接到 代理

要连接到MQTT服务,您需要一个代理URL。这个例子使用了公共代理test.mosquitto.org。您还可以使用任何其他公共代理或托管在本地机器上的代理。

  1. 输入test.mosquitto.org作为请求URL。
  2. 选择Connect以连接到代理。

响应区域中的消息表明您已连接到代理。

如果您正在使用Postman Web应用程序,请使用Postman Desktop Agent连接到MQTT代理。有关详细信息,请参阅关于Postman代理

预订主题

连接到代理后,选择Topics选项卡。这使您能够创建、记录和订阅多个主题。

  1. 在"主题"列中,输入my-toys作为主题名称。
  2. 选择订阅以订阅主题。

响应区域中将显示一条消息,指示您已订阅该主题。

发布消息

您可以使用Message选项卡编写消息并将其发送到代理。

  1. 选择"消息"选项卡并输入{"age": 2, "number of toys": 5}作为消息。
  2. 输入my-toys作为主题名称。
  3. 选择发送以发布消息。

响应区域中会出现一条传出消息,指示消息已发布。因为您已经订阅了主题my-toys,所以您还将看到具有相同正文的传入消息。继续发送更多的信息,计算你成长过程中拥有的玩具数量。

可视化响应

现在您已经订阅了一个主题并发布了一些消息,您可以使用Postman Visualizer以更易于理解的格式查看消息。

  1. 切换到响应区域中的"可视化"选项卡。您将看到age字段的消息显示为折线图。
  2. 选择字段名称列表以选择要可视化的字段。
  3. 选择+将更多字段添加到图表并查看值的更改。
  4. 选择图标来更改图表类型。

当您收到同一主题的新消息时,可视化效果会真实的变化。

下一步

尝试一次订阅多个主题并向其发布消息。

相关推荐
Heaven64520 小时前
6.8 Newman自动化运行Postman测试集
软件测试·自动化·接口测试·postman·newman
utmhikari1 天前
【Python随笔】如何用pyside6开发并部署简单的postman工具
python·postman·pyqt·pyside6·桌面工具
大霞上仙2 天前
postman读取文件执行
测试工具·postman
测试19982 天前
Chrome+Postman做接口测试
自动化测试·软件测试·chrome·测试工具·职场和发展·测试用例·postman
_Jyann_2 天前
postman快速测试接口是否可用
postman
小码哥说测试3 天前
Charles简单压力测试
自动化测试·软件测试·网络协议·selenium·接口测试·压力测试·postman
zfj3213 天前
工具篇-postman快速导入&全局变量设置&简单压测
测试工具·postman·http请求工具·curl导入·postman全局变量设置
小码哥说测试3 天前
微信小程序UI自动化测试实践 !
功能测试·测试工具·jmeter·微信小程序·postman
测试工程师成长之路4 天前
解锁 Postman 接口测试的奇妙之旅
测试工具·postman
Forworder6 天前
MVC前后端交互案例--留言板
java·开发语言·java-ee·mvc·intellij-idea·交互·postman