jmeter连接mqtt服务器

1、MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,本文简单介绍下怎么使用JMeter对MQTT协议做性能测试
2、要对MQTT协议进行测试,需要下载一个mqtt-xmeter-jar-with-dependencies.jar插件,放置在JMeter的lib/ext目录

一、安装插件
1、在github上下载mqtt-xmeter-jar-with-dependencies.jar插件,下载链接:https://github.com/xmeter-net/mqtt-jmeter,下载完成后,选择你需要的版本,当前演示选择的是V1.0.1版本

2、把mqtt-xmeter-jar-with-dependencies.jar插件复制到apache-jmeter-5.2.1\lib\ext\目录下

二、连接MQTT服务器
1、插件安装完成后,运行Jmeter我们就能看见mqtt相关的插件了

2、添加MQTT Connect,右击线程组-添加-取样器-MQTT Connect

Server name or IP: 指向被测MQTT服务器地址
Port number: 通常TCP连接的端口时1883, SSL连接则是8883。请参照服务器的具体配置。
Timeout(s): 连接超时设置,以秒为单位。
User authentication: 如果服务器配置了用户认证,您需要提供相应的用户名和口令。
ClientId: 标识客户端的固定前缀,每个连接(虚拟用户)再添加一个uuid串,整个作为客户标识。
Keep alive(s): 心跳信号发送间隔。例如,300表示客户端每隔300秒向服务器发出ping请求,以保持连接活跃。
Connect attempt max: 第一次连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。
Reconnect attempt max: 后继连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。
3、添加MQTT Pub Sampler ,右击线程组-添加-取样器-MQTT Pub Sampler

QoS Level: 服务质量,取值为0,1,2,分别代表MQTT协议规范里的至多一次(AT_MOST_ONCE),至少一次(AT_LEAST_ONCE),精确一次(EXACTLY_ONCE)
Topic name: 发布消息所属的话题 (订阅方可以根据话题不同选择订阅)
Add timestamp in payload:如果勾选,发布的消息体开头会附带当前时间戳,利用它可以在消息接收端计算消息达到的延时。不勾选则只发送实际的消息体。
Message type: 目前支持三种消息类:
String: 普通字符串 (如上面截图所示)
Hex String: 以16进制数值表示的串,比如字符串Hello, 可以表示为48656C6C6F (其中,48在ascii表中对应字母H,依次类推)。通常16进制串用来构造非文本的消息体,例如描述某些私有的协议交互和控制信息等等。
Random string with fixed length: 按指定长度生成随机的串作为消息体。
4、添加MQTT Sub Sampler,右击线程组-添加-取样器-MQTT Sub Sampler

QoS Level: 服务质量,订阅消息与发布消息相同。
Topic name: 订阅消息所属的话题。
Payload includes timestamp: 如果勾选,会从消息体开头处解析发送时间戳,用于计算消息的接收延时。
Debug response: 如果勾选,消息内容会打印在JMeter的响应结果中,用于调试目的。正式运行测试建议不勾选
5、添加MQTT DisConnect,右击线程组-添加-取样器-MQTT DisConnect

MQTT DisConnect作用主要是用来断开MQTT连接的

6、 添加查看结果树,右键线程组-添加-监听器-查看结果树,运行刚刚添加的MQTT请求,结果如下:

ls/120050997

你可能感兴趣的:(jmeter,服务器,运维)