我想将MQTT连接设置为Jmeter属性,并在其他线程中使用此连接,该线程将并发地向MQTT代理发布消息。我想实现的是1.将MQTT connect设置为Jmeter属性
lymnna711#
我不认为:1.将连接移动到另一个线程组1.尝试通过单个连接与多个虚拟用户并发发布消息是一个好主意,因为行为良好的JMeter测试必须代表应用程序的真实的使用情况,每个JMeter线程(虚拟用户)必须代表一个启用MQTT的设备,该设备建立自己与代理的连接。如果“messages are getting failed to publish”(消息发布失败),则表明您的测试设置(参数化,相关性等)或MQTT代理存在问题,因此首先我要检查:
有关详细信息,请参阅Testing the MQTT Messaging Broker for IoT - A Guide文章。如果您仍在寻找在线程组之间传递MQTT连接的方法,您可以使用JSR223 Test Elements和以下代码来实现:1.要将连接保存到属性中,请执行以下操作:
props.put('connection', vars.getObject('conn'))
字符串1.要从属性获取连接对象,请执行以下操作:
vars.putObject('conn', props.get('connection'))
型
ssm49v7z2#
@Dmitri T我使用MQTT消息作为先决条件。因此,如果我在线程组之间共享单个连接就足够了,因为我没有测试MQTT iteslf的性能。我尝试将连接保存为属性,它对于发布绝对有效,但订阅失败。你能建议一个替代方法吗?
2条答案
按热度按时间lymnna711#
我不认为:
1.将连接移动到另一个线程组
1.尝试通过单个连接与多个虚拟用户并发发布消息
是一个好主意,因为行为良好的JMeter测试必须代表应用程序的真实的使用情况,每个JMeter线程(虚拟用户)必须代表一个启用MQTT的设备,该设备建立自己与代理的连接。如果“messages are getting failed to publish”(消息发布失败),则表明您的测试设置(参数化,相关性等)或MQTT代理存在问题,因此首先我要检查:
有关详细信息,请参阅Testing the MQTT Messaging Broker for IoT - A Guide文章。
如果您仍在寻找在线程组之间传递MQTT连接的方法,您可以使用JSR223 Test Elements和以下代码来实现:
1.要将连接保存到属性中,请执行以下操作:
字符串
1.要从属性获取连接对象,请执行以下操作:
型
ssm49v7z2#
@Dmitri T
我使用MQTT消息作为先决条件。因此,如果我在线程组之间共享单个连接就足够了,因为我没有测试MQTT iteslf的性能。
我尝试将连接保存为属性,它对于发布绝对有效,但订阅失败。你能建议一个替代方法吗?