Вы также должны подключиться к брокеру в случае операции подписки также с ключевым словом Connect
.
В настоящее время вы не установили соединение ни перед одним из ключевых слов Subscribe
.В вашем I Publish an MQTT request
вы делаете соединение таким образом, чтобы оно было успешным, но затем вы также делаете разъединение, чтобы следующая подписка снова не удалась.
Если вы измените свой тест следующим образом:
*** Keywords ***
Subscribe And Get Messages
Subscribe topic=MQTTtest2 qos=2 timeout=5 limit=0
I Publish An MQTT Request
${messages}= Subscribe topic=MQTTtest2 qos=2 timeout=5 limit=0
Log To Console Messages=${messages}
I Publish An MQTT Request
Publish topic=MQTTtest2 testmessage 2 ${false}
*** Test Cases ***
MQTT test
[Tags] mqtt
[Setup] Connect 127.0.0.1
Subscribe And Get Messages
[Teardown] Disconnect
Он должен работать правильно:
==============================================================================
Robot Framework.My Test
==============================================================================
MQTT test .Messages=[b'testmessage']
MQTT test | PASS |
Также кажется, что библиотека MQTT регистрируется как новый клиент с каждым Connect
, поэтому, если вы делаете отдельное подключение / отключение для каждой подписки и публикации, это, вероятно, не будетработать на вас, как вы ожидаете.