转:基于Jmeter的MQTT测试插件

基于Jmeter的MQTT测试插件-上

1. Jmeter插件简介java

Apache JMeter是Apache组织开发的基于Java的压力测试工具。下载
用于对软件作压力测试,它最初被设计用于Web应用测试,但后来扩展到其余测试领域。git

这里咱们主要使用的基于Jmeter开发的,测试MQTT协议的插件工具,从github上找到了几个歪果人写的插件,主要有如下几个:github

这3个插件都很像,
第1个下载的最多,可是我在使用发现存在bug,弃之。
第2个功能比较简单,只能知足简单的单主题发送。
第3个是做者基于第1个来改的,而且把链接MQTT的客户端换成了最经常使用的paho java客户端,正好是我项目中使用的,熟悉,功能上虽然没有第1个丰富,可是有源码,改改仍是能够适用的。apache

2. mqttws源码打包

下载解压以后,导入到eclipse中,项目是经过maven构建,如图:
服务器

插件的效果图:
这里写图片描述markdown

下面是具体的构建方法:
在项目上点击右键,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中,session

使用解压缩工具打开,路径:ApacheJMeter_core.jar\org\apache\jmeter\resourceseclipse

注意原做者给出的messages.properties中包含的键值并不全,好比:maven

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

此处没有所有列出来,请自行添加吧。ide

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:连续发送的消息之间,等待的毫秒数
  • 添加监听器
    图像,表格都行
    这里写图片描述
相关文章
相关标签/搜索