如果不想写代码,可以直接用jmeter推送(之前的文章中写了详细步骤,感兴趣可以看看),但是jmeter有一个弊端:只能推送一个topic,且jmeter本身较耗性能(应该有推送多个topic的方法,还没有深入探索),对比之下,还是写脚本吧。
为了使压测更接近真实场景,我们直接从数据库中读取topic,随机选择若干个,进行并发推送。话不多说,仍然是直接上酸菜。
import json
import paho.mqtt.client as mqtt
import time
import random
import pymysql
from datetime import datetime
# MQTT配置
HOST = "IP" # 服务器ip地址
PORT = 1883 # 服务器端口
USER = 'username' # 登陆用户名
PASSWORD = 'password' # 用户名对应的密码
client_id = f'python-mqtt-{
random.randint(0, 1000)}' # client_id随机化
# 连接数据库
conn = pymysql.connect(host='IP', user='yourusername', password='yourpassword', database='triplerecovery') # 数据库名称
# 创建游标
cursor = conn.cursor()
# 查询数据库
cursor.execute("SHOW TABLES;")
# 获取查询结果
tables = cursor.fetchall()
for table in tables:
print(table[0])