我正在参加「掘金·启航计划」
背景:公司产品接入了mqtt协议,需要一套自动化测试框架进行回归测试。网上找了mqtt接口测试的方法,封装了method,详细内容如下:
1.代码结构
2.method文件mqtt接口测试
class Mqtt_method_info():
def __init__(self):
self.NAME = ReadConfig_mqtt().get_device("NAME")
self.PASSWORD = ReadConfig_mqtt().get_device("PASSWORD")
def mqtt_publish(self,TOPIC, msg, HOST, PORT, client_id):
publish.single(TOPIC, json.dumps(msg), qos=1, hostname=HOST, port=PORT, client_id=client_id,
auth={'username': self.NAME, 'password': self.PASSWORD})
def mqtt_subscribe(self,TOPIC, HOST, PORT):
client_id = time.strftime('mq:test:%Y%m%d%H%M%S', time.localtime(time.time()))
msg = subscribe.simple(TOPIC, qos=1, hostname=HOST, port=PORT, client_id=client_id,
auth={'username': self.NAME,'password': self.PASSWORD})
payload_response = msg.payload.decode("utf-8")
return payload_response
def mqtt_automation(self,PC_ip, port, client_id,request_topic, payload_request,response_topic):
pool = ThreadPoolExecutor(max_workers=2)
future1 = pool.submit(self.mqtt_subscribe, response_topic, PC_ip, port)
future2 = pool.submit(self.mqtt_publish, request_topic, payload_request, PC_ip, port, client_id)
# print(future1.result()) #
self.payload_response = future1.result())
return self.payload_response