在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://)两种协议,其余协议待扩充。 |
MQTT服务器IP |
是 |
String |
- |
MQTT服务器地址,支持写固定IP或域名。 |
MQTT服务器端口 |
是 |
Integer |
- |
MQTT服务器端口,用来访问MQTT服务。 |
MQTT版本 |
是 |
String |
3.1.1 |
MQTT版本:目前支持3.1.1和3.1。 |
用户名 |
是 |
String |
- |
MQTT服务器用户名。 |
密码 |
是 |
String |
- |
MQTT服务器密码。 |
连接保活时长 |
是 |
String |
300 |
MQTT协议组件与服务器在该时间段内会发送心跳。超过该连接保活时长后,客户端不再发送PINGREQ报文,不影响后续发布消息、订阅消息和关闭连接流程。 |
客户端ID |
是 |
String |
apitest_ |
MQTT客户端ID,用来区分客户端,一般为UUID。 |
添加随机后缀 |
是 |
Boolean |
true |
支持添加随机后缀,当clientID为空时,默认打开,用户指定后缀,请关闭随机后缀。 |
清空会话 |
是 |
Boolean |
false |
每次消息接收之后是否清空会话。 |
MQTTConnect响应
参数 |
参数类型 |
描述 |
---|---|---|
mqtt_response |
JSON |
MQTT服务端返回值。 |
status |
String |
MQTT服务端响应状态。 |
message |
String |
MQTT服务端返回信息。 |
data |
JSON |
APITest定义的接口返回。 |
request_begin |
Long |
访问MQTT服务器的开始时间。 |
response_time |
Long |
MQTT服务器返回响应耗费时长。 |
sent_bytes |
Long |
发送的字节数。 |
recv_bytes |
Long |
接收的字节数。 |
return_code |
Integer |
MQTT服务器返回码。 |
user_id |
Integer |
APITest返回的用户标识ID,详见:详见默认响应提取。 |
MQTT默认检查点
名称 |
预期值 |
---|---|
结果 |
成功 |
MQTTConnect使用示例
填写参数,链接MQTT服务器:
MQTTConnect响应示例
{ "mqtt_response" : { "status" : "success", "message" : "", "data" : { "request_begin" : 1656937043362, "response_time" : 73, "sent_bytes" : 18, "recv_bytes" : 4, "return_code" : 0 } }, "user_id" : "1" }