在CodeArts TestPlan接口脚本中调用MQTTConnect关键字
MQTT协议简介
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(Publish/Subscribe)模式的轻量级通讯协议,MQTT 最大的优点在于以极少的代码和有限的带宽,为远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议, MQTT 在物联网、小型设备、移动应用等方面有广泛的应用。
接口测试对于MQTT协议提供全流程测试,系统关键字包括:MQTTConnect,MQTTDisconnect,MQTTPublish,MQTTSubscribe。
由于MQTT协议测试需要采用双容器方案,安全风险较高,目前只对白名单用户开放,如果需要使用MQTT相关测试请联系客服。
MQTTConnect简介
该系统关键字支持对MQTT协议的全流程测试,用以连接MQTT服务器,如果需要使用该系统关键字,需要用户将MQTT服务器开放公网访问并且将对应端口的安全组策略开启放行。
| 参数 | 是否必选 | 参数类型 | 默认值 | 描述 |
|---|---|---|---|---|
| MQTT服务器协议 | 是 | String | - | 枚举值(tcp://和ssl://),缺省为tcp://。当前支持TCP(tcp://)和SSL(ssl://)两种协议,TCP 为明文传输,SSL 为加密传输。 |
| MQTT服务器IP | 是 | String | - | MQTT Broker 地址,支持 固定IP 或域名 |
| MQTT服务器端口 | 是 | Integer | - | Broker 端口号,常见 :1883(TCP)/8883(SSL)。 |
| MQTT版本 | 是 | String | 3.1.1 | MQTT版本:目前支持3.1.1。 |
| 用户名 | 是 | String | - | Broker 认证用户名 |
| 密码 | 是 | String | - | Broker 认证密码(脱敏显示) |
| 超时时间 | 是 | Long | 30000 | 连接操作超时(毫秒)。超时未连上则报错。 |
| 连接保活时长 | 是 | Long | 60 | 心跳保活时长(毫秒)。在该周期内客户端发 PINGREQ 心跳,防止连接被 Broker 断开。 |
| 客户端ID | 是 | String | apitest_ | MQTT客户端ID,用来区分客户端,一般为UUID。 |
| 添加随机后缀 | 是 | Boolean | true | 支持添加随机后缀,“true”在ClientId 后追加随机串,避免多并发用例 ClientId 冲突。自定义 ClientId 时建议关闭。 |
| 清空会话 | 是 | Boolean | false | 每次消息接收之后是否清空会话。true = clean session,每次连接不恢复上次离线消息;false = 持久会话,Broker 保留离线 QoS 1/2 消息。 |
MQTTConnect响应
| 参数 | 参数类型 | 描述 |
|---|---|---|
| mqtt_response | JSON | MQTT服务端返回值。 |
| status | String | MQTT服务端响应状态。 |
| message | String | MQTT服务端返回信息。 |
| data | JSON | APITest定义的接口返回。 |
| request_begin | Long | 访问MQTT服务器的开始时间。 |
| response_time | Long | MQTT服务器返回响应耗费时长。 |
| return_code | Integer | MQTT服务器返回码。 |
| user_id | Integer | APITest返回的用户标识ID,详见:详见默认响应提取。 |
MQTT默认检查点
| 名称 | 预期值 |
|---|---|
| 结果 | 成功 |
MQTTConnect使用示例
填写参数,链接MQTT服务器:

MQTTConnect响应示例
{
"mqtt_response" : {
"status" : "success",
"message" : "",
"data" : {
"request_begin" : 1791618066263,
"response_time" : 1179,
"return_code" : 0
}
},
"user_id" : "conn_ace8915ef7d54e6bb15da8ae17ede4b3"
}