转:基于Jmeter的MQTT测试插件
1. Jmeter插件简介
Apache JMeter是Apache组织开发的基于Java的压力测试工具。下载
用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
这里我们主要使用的基于Jmeter开发的,测试MQTT协议的插件工具,从github上找到了几个歪果人写的插件,主要有以下几个:
这3个插件都很像,
第1个下载的最多,但是我在使用发现存在bug,弃之。
第2个功能比较简单,只能满足简单的单主题发送。
第3个是作者基于第1个来改的,并且把连接MQTT的客户端换成了最常用的paho java客户端,正好是我项目中使用的,熟悉,功能上虽然没有第1个丰富,但是有源码,改改还是可以适用的。
2. mqttws源码打包
下载解压之后,导入到eclipse中,项目是通过maven构建,如图:
插件的效果图:
下面是具体的构建方法:
在项目上点击右键,Run As
->Maven clean
->Maven install
,在target
目录下,将生产一个名为mqttws-jmeter.jar
的jar包。
将mqttws-jmeter.jar
复制到Jmeter的\lib\ext
目录下,再将工程ressource
目录下的messages.properties
文件中相关MQTT的内容复制至Jmeter的\lib\ext
目录下ApacheJMeter_core.jar
中,
使用解压缩工具打开,路径:ApacheJMeter_core.jar\org\apache\jmeter\resources
注意原作者给出的messages.properties
中包含的键值并不全,比如:
mqtt_clean_session= Clean Session
mqtt_publisher=MQTT Publisher
mqtt_itertions=Number of samples to aggregate
mqtt_connection_timeout=Milliseconds to wait for connection
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
此处没有全部列出来,请自行添加吧。
3. 插件使用
- 添加线程组:添加->Threads(Users)->线程组
Ramp-Up Period(in seconds)
:设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒
钟启动2个线程。如果设置0,为同时启动。 - 添加发布端:线程组右键,添加->Sampler->MQTT Publisher
Provider URL
:MQTT服务器地址
List Topic
:发布的主题。虽然这里写的是list,但是作者并不支持,后面会讲修改了一下源码,支持多主题发布
Number of samples to aggregate
:一个线程发布相同消息的次数
throttle
:连续发送的消息之间,等待的毫秒数 - 添加监听器
图像,表格都行
分类:
Jmeter
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决