更新时间:2024-07-18 GMT+08:00
分享

在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
    }
  }
}

相关文档