Robotframework 使用MQTTLibrary for Robot Framework,是否可以确定接收消息的确切主题?

Robotframework 使用MQTTLibrary for Robot Framework,是否可以确定接收消息的确切主题?,robotframework,mqtt,Robotframework,Mqtt,我是一个新的Robot框架用户,我添加了MQTTLibrary 我可以根据文档设置订阅,并成功接收邮件。也可以订阅通配符,例如 ${message}= Subscribe topic=test/mqtt_test/+ qos=1 timeout=2 以上内容将成功获取发布到test/mqtt_test/apples、test/mqtt_test/oranges、test/mqtt_test/pears等的消息 但是,${message}似乎只包含消息负载的内容,我无法确定是否可以确定所

我是一个新的Robot框架用户,我添加了MQTTLibrary

我可以根据文档设置订阅,并成功接收邮件。也可以订阅通配符,例如

${message}=  Subscribe  topic=test/mqtt_test/+  qos=1  timeout=2
以上内容将成功获取发布到test/mqtt_test/apples、test/mqtt_test/oranges、test/mqtt_test/pears等的消息

但是,${message}似乎只包含消息负载的内容,我无法确定是否可以确定所接收消息的确切主题

这可以通过MQTTLibrary完成吗

=============

其他详细信息(提供对ILostMySpoons评论的答复):

当然-基本上只是信息内容。所以如果我用

mosquitto_pub -h 127.0.0.1 -t test/mqtt_test/apples -m "Hello to you"
…而我的机器人框架脚本

Log to console  ${message}
…我明白了

['Hello to you']

mosquitto代理(mosquitto-v)的调试输出不显示消息有效负载,但它显示了test/mqtt_test/apples的完整主题路径。

我深入研究了MQTTLibrary,并提出了一个解决方案。我既是Robot框架又是PythonNoob,所以这可能不是最好/最合适的实现,但它似乎可以工作

在我的安装中,MQTTLibrary源代码包含在C:\Python27\Lib\site packages\MQTTLibrary中。所有感兴趣的内容都在MQTTKeywords.py文件中

在_on_message_list()函数中,更改

    self._messages.append(message.payload)
…到

    self._messages.append([message.topic, message.payload])
像以前一样在Robot框架脚本中使用Subscribe关键字,但现在将有一个列表列表;具体而言,列表中的每个条目都是[主题,有效负载]的列表。例如

  ${messages}=  Subscribe  topic=test/mqtt_test/+    qos=1  timeout=20  limit=0
  ${third_message}= Get From List   ${messages}         2
  ${topic}=         Get From List   ${third_message}    0
  ${payload}=       Get From List   ${third_message}    1
  Log to console  \nTopic:\n${topic}
  Log to console  \nPayload:\n${payload}
上述示例假设在20秒超时窗口期间至少收到3条消息


请注意,此更改将破坏现有脚本,因此更完整的解决方案可能需要添加新的关键字(例如订阅和获取主题),并进行额外的工作以确保订阅仍然只返回有效负载。

您能否提供
${message}
的内容示例?