更新时间:2026-10-14 GMT+08:00
分享

在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默认检查点

名称

预期值

结果

成功

默认响应提取

提取参数名称

提取属性

参数说明

MQTT_USER_ID

user_id

MQTT服务器连接成功之后,系统标记的服务用户ID,后续MQTT系统关键字需要引用。

MQTTConnect使用示例

填写参数,链接MQTT服务器:

MQTTConnect响应示例

{
  "mqtt_response" : {
    "status" : "success",
    "message" : "",
    "data" : {
      "request_begin" : 1791618066263,
      "response_time" : 1179,
      "return_code" : 0
    }
  },
  "user_id" : "conn_ace8915ef7d54e6bb15da8ae17ede4b3"
}

相关文档