在CodeArts TestPlan接口脚本中调用MQTTSubscribe关键字
MQTTSubscribe简介
该系统关键字支持对MQTT协议的全流程测试,用以向MQTT服务器订阅并接受消息,最后取消订阅,如果需要使用该系统关键字,需要用户将MQTT服务器开放公网访问并且将对应端口的安全组策略开启放行。
参数 |
是否必选 |
参数类型 |
默认值 |
描述 |
---|---|---|---|---|
MQTT连接标识(userId) |
是 |
String |
${MQTT_USER_ID} |
MQTT连接标识,作为用例的局部变量,由MQTTConnect返回并存储。 详见:MQTTConnect章节响应提取。 |
订阅的主题 |
是 |
String |
- |
需要订阅的MQTT服务器的主题。 |
QoS级别 |
是 |
String |
最多发送1次(0) |
MQTT QoS级别。 |
响应类型 |
是 |
String |
Text |
消息响应类型:枚举值(Text和Binary)。支持文本(Text)或二进制(Binary)。 |
超时时间 |
是 |
Long |
- |
连接MQTT服务器超时时间,单位:MILLISECONDS。 |
接受消息总数 |
是 |
Integer |
10 |
APITest访问MQTT服务器之后保留的消息总数。 |
接受消息耗时 |
是 |
Long |
1 |
接收消息最长的等待时间,单位:second。 |
MQTTSubscribe响应
参数 |
参数类型 |
描述 |
---|---|---|
subscribe_result |
JSON |
订阅消息MQTT服务端返回值。 |
unsubscribe_result |
- |
取消订阅MQTT服务端返回值。 |
subscribe_result.status |
String |
MQTT服务端响应状态。 |
subscribe_result.message |
String |
MQTT服务端返回信息。 |
subscribe_result.data |
JSON |
APITest定义的接口返回。 |
data.request_begin |
Long |
访问MQTT服务器的开始时间。 |
data.response_time |
Long |
MQTT服务器返回响应耗费时长。 |
data.sent_bytes |
Long |
发送的字节数。 |
data.recv_bytes |
Long |
接收的字节数。 |
data.return_code |
Integer |
MQTT服务器返回码。 |
message_result |
JSON |
MQTT服务器订阅返回的消息,每个消息产生一条记录。 |
message_result.status |
String |
MQTT获取订阅信息的状态结果。 |
message_result.message |
String |
订阅消息时MQTT服务器返回的信息。 |
message_result.data |
JSON |
订阅信息消息体。 |
message_result.data.more_msg |
Boolean |
是否还有消息等待读取,消息订阅返回完成之后为false。 |
message_result.data.sent_bytes |
Long |
发送字节数。 |
message_result.data recv_bytes |
Long |
接收字节数。 |
message_result.data messages |
JSONArray |
接收到的MQTT服务器消息。 |
messages[0].timestamp |
Long |
接收这条消息的时间点。 |
messages[0].topic |
String |
订阅的Topic。 |
messages[0].message |
String |
接收的消息内容。 |
messages[0].qos |
String |
设置的MQTT Qos级别。 |
默认检查点
名称 |
预期值 |
---|---|
结果 |
成功 |
MQTTSubscribe使用示例
填写参数,订阅MQTT服务器:
MQTTSubscribe响应示例
{ "subscribe_result" : { "status" : "success", "message" : "", "data" : { "request_begin" : 1656937043980, "response_time" : 37, "sent_bytes" : 13, "recv_bytes" : 5, "return_code" : 0 } }, "message_result" : { "status" : "success", "message" : "", "data" : { "more_msg" : false, "sent_bytes" : 0, "recv_bytes" : 35, "messages" : [ { "timestamp" : 1656937044017, "topic" : "test01", "message" : "This is a test message!", "qos" : 0 } ] } }, "unsubscribe_result" : { "status" : "success", "message" : "", "data" : { "request_begin" : 1656937044034, "response_time" : 0, "sent_bytes" : 10, "recv_bytes" : 4, "return_code" : 0 } } }