提交 a88b23bb authored 作者: 陈泽健's avatar 陈泽健

拆分出MQTT通用工具目录,用于后续开发测试人员进行模拟设备调试以及MQTT相关的程序验证。

上级 bd3037bd
/预定系统/reports
\ No newline at end of file
/预定系统/reports
/预定系统/log
\ No newline at end of file
此差异已折叠。
topic,client_id,presence_state,kaiguan,julishezhi,lingmindushezhi,wifi_mac,ble_mac,sn,ip
/c1_100_wifi_u/D4F98D094001/properties/upload,D4F98D094001,1,0,3,2,D4F98D094001,D4F98D093001,D4F98D092001,192.168.1.1
\ No newline at end of file
topic,clientId,appToken,companyNumber,cnum,conferenceId,macAddress,authCode,clientId,deviceId
rebootResponseTopic,48134e6047a19a01,AND-2CT-0101,CN-2CT-UBAINS,4b521415d42650a0da515114aa36ab88,220,20:59:20:00:28:01,AND-2CT-0101,48134e6047a19a01,aa44e258a4e1e001
rebootResponseTopic,48134e6047a19a02,AND-2CT-0102,CN-2CT-UBAINS,6828f107eddcd6c80537e554f1ba6393,221,20:59:20:00:28:02,AND-2CT-0102,48134e6047a19a02,aa44e258a4e1e002
rebootResponseTopic,48134e6047a19a03,AND-2CT-0103,CN-2CT-UBAINS,694eba1b6f1995d4f7c085c77788ca68,222,20:59:20:00:28:03,AND-2CT-0103,48134e6047a19a03,aa44e258a4e1e003
rebootResponseTopic,48134e6047a19a04,AND-2CT-0104,CN-2CT-UBAINS,acab665450c5bb91e11881e749934b63,223,20:59:20:00:28:04,AND-2CT-0104,48134e6047a19a04,aa44e258a4e1e004
rebootResponseTopic,48134e6047a19a05,AND-2CT-0105,CN-2CT-UBAINS,842380cf2573785aa3e74f61c3921e1b,224,20:59:20:00:28:05,AND-2CT-0105,48134e6047a19a05,aa44e258a4e1e005
rebootResponseTopic,48134e6047a19a06,AND-2CT-0106,CN-2CT-UBAINS,4c02ca0fc3f0947ab2658b6d6b98bbfc,225,20:59:20:00:28:06,AND-2CT-0106,48134e6047a19a06,aa44e258a4e1e006
rebootResponseTopic,48134e6047a19a07,AND-2CT-0107,CN-2CT-UBAINS,24d712de79b9907304874c1ab158cbab,226,20:59:20:00:28:07,AND-2CT-0107,48134e6047a19a07,aa44e258a4e1e007
rebootResponseTopic,48134e6047a19a08,AND-2CT-0108,CN-2CT-UBAINS,ef89042cce57dab36475a32f86d515b1,227,20:59:20:00:28:08,AND-2CT-0108,48134e6047a19a08,aa44e258a4e1e008
rebootResponseTopic,48134e6047a19a09,AND-2CT-0109,CN-2CT-UBAINS,278b2caed091574f88673c784e2e3c70,228,20:59:20:00:28:09,AND-2CT-0109,48134e6047a19a09,aa44e258a4e1e009
rebootResponseTopic,48134e6047a19a10,AND-2CT-0110,CN-2CT-UBAINS,d1f392aaa472a42399a2e071298ffca8,229,20:59:20:00:28:10,AND-2CT-0110,48134e6047a19a10,aa44e258a4e1e010
rebootResponseTopic,48134e6047a19a11,AND-2CT-0111,CN-2CT-UBAINS,67ff1af148c6c09ee380a2160b14dd47,230,20:59:20:00:28:11,AND-2CT-0111,48134e6047a19a11,aa44e258a4e1e011
rebootResponseTopic,48134e6047a19a12,AND-2CT-0112,CN-2CT-UBAINS,c80b3f6669bae8acce37f4902a0243b8,231,20:59:20:00:28:12,AND-2CT-0112,48134e6047a19a12,aa44e258a4e1e012
rebootResponseTopic,48134e6047a19a13,AND-2CT-0113,CN-2CT-UBAINS,0b94554e203736514af9de41d68b5f37,232,20:59:20:00:28:13,AND-2CT-0113,48134e6047a19a13,aa44e258a4e1e013
rebootResponseTopic,48134e6047a19a14,AND-2CT-0114,CN-2CT-UBAINS,dc7c8d24f0e2b5e545223199dc76818b,233,20:59:20:00:28:14,AND-2CT-0114,48134e6047a19a14,aa44e258a4e1e014
rebootResponseTopic,48134e6047a19a15,AND-2CT-0115,CN-2CT-UBAINS,0a5846605b9d3b99a6623b8230870a5b,234,20:59:20:00:28:15,AND-2CT-0115,48134e6047a19a15,aa44e258a4e1e015
rebootResponseTopic,48134e6047a19a16,AND-2CT-0116,CN-2CT-UBAINS,5b5801447c15748408fa4ca6e2277f5a,235,20:59:20:00:28:16,AND-2CT-0116,48134e6047a19a16,aa44e258a4e1e016
rebootResponseTopic,48134e6047a19a17,AND-2CT-0117,CN-2CT-UBAINS,968c3946b598c7bb6419ac496c2000f4,236,20:59:20:00:28:17,AND-2CT-0117,48134e6047a19a17,aa44e258a4e1e017
rebootResponseTopic,48134e6047a19a18,AND-2CT-0118,CN-2CT-UBAINS,24437bdc20f50f62d353e432899e6c87,237,20:59:20:00:28:18,AND-2CT-0118,48134e6047a19a18,aa44e258a4e1e018
rebootResponseTopic,48134e6047a19a19,AND-2CT-0119,CN-2CT-UBAINS,5409a552f9c917b486d48df5912da1de,238,20:59:20:00:28:19,AND-2CT-0119,48134e6047a19a19,aa44e258a4e1e019
rebootResponseTopic,48134e6047a19a20,AND-2CT-0120,CN-2CT-UBAINS,9c6e5bdce14c3af47d6427e69a70a680,239,20:59:20:00:28:20,AND-2CT-0120,48134e6047a19a20,aa44e258a4e1e020
rebootResponseTopic,48134e6047a19a21,AND-2CT-0121,CN-2CT-UBAINS,5d3637f9a2137ca91fae4cfa9eb14161,240,20:59:20:00:28:21,AND-2CT-0121,48134e6047a19a21,aa44e258a4e1e021
rebootResponseTopic,48134e6047a19a22,AND-2CT-0122,CN-2CT-UBAINS,4c8f155cacbeaeae83c6599fc119f731,241,20:59:20:00:28:22,AND-2CT-0122,48134e6047a19a22,aa44e258a4e1e022
rebootResponseTopic,48134e6047a19a23,AND-2CT-0123,CN-2CT-UBAINS,a1c1e33712c298ff68b1bea640d03027,242,20:59:20:00:28:23,AND-2CT-0123,48134e6047a19a23,aa44e258a4e1e023
rebootResponseTopic,48134e6047a19a24,AND-2CT-0124,CN-2CT-UBAINS,1e0f1843056a1c4a45a80b7edad52f04,243,20:59:20:00:28:24,AND-2CT-0124,48134e6047a19a24,aa44e258a4e1e024
rebootResponseTopic,48134e6047a19a25,AND-2CT-0125,CN-2CT-UBAINS,a4b52db6122128240c922b3ee9b4abed,244,20:59:20:00:28:25,AND-2CT-0125,48134e6047a19a25,aa44e258a4e1e025
rebootResponseTopic,48134e6047a19a26,AND-2CT-0126,CN-2CT-UBAINS,f1b2d3698a082def3c7253ab0204e2e8,245,20:59:20:00:28:26,AND-2CT-0126,48134e6047a19a26,aa44e258a4e1e026
rebootResponseTopic,48134e6047a19a27,AND-2CT-0127,CN-2CT-UBAINS,fbbd92eb329781f78d5a3cc0f077b0d0,246,20:59:20:00:28:27,AND-2CT-0127,48134e6047a19a27,aa44e258a4e1e027
rebootResponseTopic,48134e6047a19a28,AND-2CT-0128,CN-2CT-UBAINS,b5c4ec7f5febbe786775b6a4e69b0d13,247,20:59:20:00:28:28,AND-2CT-0128,48134e6047a19a28,aa44e258a4e1e028
rebootResponseTopic,48134e6047a19a29,AND-2CT-0129,CN-2CT-UBAINS,35dc71aa75e70725cb239052a2f17c36,248,20:59:20:00:28:29,AND-2CT-0129,48134e6047a19a29,aa44e258a4e1e029
rebootResponseTopic,48134e6047a19a30,AND-2CT-0130,CN-2CT-UBAINS,63fdb9a82a270e58f5e3bb7b64da43d9,249,20:59:20:00:28:30,AND-2CT-0130,48134e6047a19a30,aa44e258a4e1e031
/uams/android/broadcast,,,,,,,,48134e6047a19a01,aa44e258a4e1e001
/uams/android/broadcast,,,,,,,,48134e6047a19a02,aa44e258a4e1e002
/uams/android/broadcast,,,,,,,,48134e6047a19a03,aa44e258a4e1e003
/uams/android/broadcast,,,,,,,,48134e6047a19a04,aa44e258a4e1e004
/uams/android/broadcast,,,,,,,,48134e6047a19a05,aa44e258a4e1e005
/uams/android/broadcast,,,,,,,,48134e6047a19a06,aa44e258a4e1e006
/uams/android/broadcast,,,,,,,,48134e6047a19a07,aa44e258a4e1e007
/uams/android/broadcast,,,,,,,,48134e6047a19a08,aa44e258a4e1e008
/uams/android/broadcast,,,,,,,,48134e6047a19a09,aa44e258a4e1e009
/uams/android/broadcast,,,,,,,,48134e6047a19a10,aa44e258a4e1e010
/uams/android/broadcast,,,,,,,,48134e6047a19a11,aa44e258a4e1e011
/uams/android/broadcast,,,,,,,,48134e6047a19a12,aa44e258a4e1e012
/uams/android/broadcast,,,,,,,,48134e6047a19a13,aa44e258a4e1e013
/uams/android/broadcast,,,,,,,,48134e6047a19a14,aa44e258a4e1e014
/uams/android/broadcast,,,,,,,,48134e6047a19a15,aa44e258a4e1e015
/uams/android/broadcast,,,,,,,,48134e6047a19a16,aa44e258a4e1e016
/uams/android/broadcast,,,,,,,,48134e6047a19a17,aa44e258a4e1e017
/uams/android/broadcast,,,,,,,,48134e6047a19a18,aa44e258a4e1e018
/uams/android/broadcast,,,,,,,,48134e6047a19a19,aa44e258a4e1e019
/uams/android/broadcast,,,,,,,,48134e6047a19a20,aa44e258a4e1e020
/uams/android/broadcast,,,,,,,,48134e6047a19a21,aa44e258a4e1e021
/uams/android/broadcast,,,,,,,,48134e6047a19a22,aa44e258a4e1e022
/uams/android/broadcast,,,,,,,,48134e6047a19a23,aa44e258a4e1e023
/uams/android/broadcast,,,,,,,,48134e6047a19a24,aa44e258a4e1e024
/uams/android/broadcast,,,,,,,,48134e6047a19a25,aa44e258a4e1e025
/uams/android/broadcast,,,,,,,,48134e6047a19a26,aa44e258a4e1e026
/uams/android/broadcast,,,,,,,,48134e6047a19a27,aa44e258a4e1e027
/uams/android/broadcast,,,,,,,,48134e6047a19a28,aa44e258a4e1e028
/uams/android/broadcast,,,,,,,,48134e6047a19a29,aa44e258a4e1e029
/uams/android/broadcast,,,,,,,,48134e6047a19a30,aa44e258a4e1e031
\ No newline at end of file
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
base_path = os.path.abspath(os.path.join(current_dir, '..','..'))
# 添加路径
sys.path.append(base_path)
# 导入模块
try:
from MQTT通用工具.base.Mqtt_Send import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from MQTT通用工具.base.Mqtt_Send import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../测试数据/预定系统-毫米波雷达/MQTT毫米波调试.csv')
if __name__ == "__main__":
# 读取配置文件
configs = Mqtt.read_config_from_csv(csv_file_path)
broker_address = "192.168.1.131"
port = 1881
num_repeats = 2000 # 重复执行的次数
interval_between_repeats = 1 # 每次重复之间的间隔时间(秒)
# 创建 MQTT 客户端实例-
mqtt_client = Mqtt(broker_address, port)
try:
# 连接到 MQTT 服务器
mqtt_client.connect()
for repeat in range(num_repeats):
logging.info(f"开始第 {repeat + 1} 次上报")
# 遍历配置文件中的每一行数据
for config in configs:
# 构建消息内容
topic = config["topic"]
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
message = Mqtt.build_message(config, current_time, topic)
logging.info(message)
# 发送消息
mqtt_client.publish(topic, message)
# 每次发送之间可以设置一个间隔时间
time.sleep(interval_between_repeats)
# 每次重复之间设置一个间隔时间
time.sleep(interval_between_repeats)
except Exception as e:
logging.error(f"发送消息时发生错误: {e}")
finally:
# 断开与 MQTT 服务器的连接
mqtt_client.disconnect()
import paho.mqtt.client as mqtt
import logging
# 配置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# MQTT 客户端回调函数
def on_connect(client, userdata, flags, rc):
logging.info("已连接到MQTT服务器")
# 订阅多个主题
topics = ["/androidPanel/", "/uams/android/broadcast", "/material/client/79f18c1a9a3bcfb1/"]
for t in topics:
client.subscribe(t)
def on_message(client, userdata, msg):
logging.info(f"接收到消息: 主题={msg.topic}, 消息体={msg.payload.decode()}")
if __name__ == "__main__":
# 5.218测试环境 192.168.5.218 1883
broker_address = "nat.ubainsyun.com"
port = 18685
# 创建 MQTT 客户端实例
mqtt_client = mqtt.Client()
# 设置回调函数
mqtt_client.on_connect = on_connect
mqtt_client.on_message = on_message
try:
# 连接到 MQTT 服务器
mqtt_client.connect(broker_address, port)
# 启动网络循环
mqtt_client.loop_forever()
except Exception as e:
logging.error(f"连接MQTT服务器时发生错误: {e}")
finally:
# 断开与 MQTT 服务器的连接
mqtt_client.disconnect()
\ No newline at end of file
from hytest import *
# 获取当前脚本的绝对路径
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建预定系统的绝对路径
base_path = os.path.abspath(os.path.join(current_dir, '..','..'))
# 添加路径
sys.path.append(base_path)
# 导入模块
try:
from MQTT通用工具.base.Mqtt_Send import *
except ModuleNotFoundError as e:
print(f"ModuleNotFoundError: {e}")
print("尝试使用绝对路径导入")
from MQTT通用工具.base.Mqtt_Send import *
# 获取当前脚本所在的目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建CSV文件的绝对路径
csv_file_path = os.path.join(current_dir, '../测试数据/预定系统-门口屏/MQTT安卓上报与心跳上报.csv')
if __name__ == "__main__":
# 读取配置文件
configs = Mqtt.read_config_from_csv(csv_file_path)
broker_address = "192.168.5.218"
port = 1883
num_repeats = 100 # 重复执行的次数
interval_between_repeats = 0.2 # 每次重复之间的间隔时间(秒)
# 创建 MQTT 客户端实例
mqtt_client = Mqtt(broker_address, port)
try:
# 连接到 MQTT 服务器
mqtt_client.connect()
logging.info('连接成功')
for repeat in range(num_repeats):
logging.info(f"开始第 {repeat + 1} 次上报")
# 遍历配置文件中的每一行数据
for config in configs:
# 构建消息内容-
# 构建消息内容
topic = config["topic"]
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
logging.info(config)
message = Mqtt.build_message(config, current_time, topic)
# 发送消息
mqtt_client.publish(topic, message)
# 每次发送之间可以设置一个间隔时间
time.sleep(interval_between_repeats)
# 每次重复之间设置一个间隔时间
time.sleep(interval_between_repeats)
except Exception as e:
logging.error(f"发送消息时发生错误: {e}")
finally:
# 断开与 MQTT 服务器的连接
mqtt_client.disconnect()
\ No newline at end of file
......@@ -158,13 +158,13 @@ def safe_send_keys(element_locator, value, wd):
element.send_keys(value) # 向元素发送指定的键值
except TimeoutException:
# 如果元素在指定时间内未被找到或不可点击,打印超时异常信息
print(f"TimeoutException: Element {element_locator} not found or not clickable within 20 seconds.")
INFO(f"TimeoutException: Element {element_locator} not found or not clickable within 20 seconds.")
except NoSuchElementException:
# 如果元素不存在,打印相应异常信息
print(f"NoSuchElementException: Element {element_locator} not found.")
INFO(f"NoSuchElementException: Element {element_locator} not found.")
except ElementNotInteractableException:
# 如果元素不可交互,打印相应异常信息
print(f"ElementNotInteractableException: Element {element_locator} is not interactable.")
INFO(f"ElementNotInteractableException: Element {element_locator} is not interactable.")
def safe_click(element_locator, wd):
"""
......
......@@ -127,4 +127,5 @@
- 补充历史会议模块中会议筛选功能的自动化验证处理。
26. 2024-12-24
- 根据实际使用时巡检人员的反馈进行调整,定位会控按钮时增加判断,如定位不到即会控创建失败。
- 调整巡检的执行时间。
\ No newline at end of file
- 调整巡检的执行时间。
- 拆分出MQTT通用工具目录,用于后续开发测试人员进行模拟设备调试以及MQTT相关的程序验证。
\ No newline at end of file
此差异已折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论