MQTT压力测试工具之JMeter插件教程
基于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
中包含的键值并不全,比如:
1 mqtt_clean_session= Clean Session
2 mqtt_publisher=MQTT Publisher
3 mqtt_itertions=Number of samples to aggregate
4 mqtt_connection_timeout=Milliseconds to wait for connection
此处没有全部列出来,请自行添加吧。
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
:连续发送的消息之间,等待的毫秒数 - 添加监听器
图像,表格都行
MQTT压力测试工具之JMeter插件教程的更多相关文章
- [转]Jmeter压力测试工具安装及使用教程
一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...
- Jmeter压力测试工具安装及使用教程
一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 3.我下载的是jmeter4.0版本, ...
- Jmeter:图形界面压力测试工具
Jmeter是一款强大的图形界面压力测试工具,完全用Java写成,关于Jmeter的介绍,网上其实有不少的文章,我原本是不想再重复写类似文章的,但我发现有些很关键性的,在我们测试中一定会用到的一些设置 ...
- Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程 - VPS侦探
Web服务器性能/压力测试工具http_load.webbench.ab.Siege使用教程 - VPS侦探 http://soft.vpser.net/test/http_load/http_loa ...
- apache压力测试工具的apache bench和JMeter的安装
Apache压力测试工具的安装 1,apache bench的安装 apache bench工具集成在http的软件包内,可以直接安装apache就可以. 当有些时候,我们不需要用到所有的软件包,我 ...
- Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程
Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论 一.http_load 程序 ...
- Jmeter使用指南----压力测试工具
来源: https://blog.csdn.net/u012111923/article/details/80705141 https://www.cnblogs.com/st-leslie/p/51 ...
- 【转】Jmeter:图形界面压力测试工具
Jmeter是一款强大的图形界面压力测试工具,完全用Java写成,关于Jmeter的介绍,网上其实有不少的文章,我原本是不想再重复写类似文章的,但我发现有些很关键性的,在我们测试中一定会用到的一些设置 ...
- Apache压力(并发)测试工具ab的使用教程收集
说明:用ab的好处,在处理多并发的情况下不用自己写线程模拟.其实这个世界除了LoadRunner之外还是有很多方案可以选择的. 官网: http://httpd.apache.org/(Apache服 ...
随机推荐
- shell脚本实例-批量检查多个网站地址是否正常
#!/usr/bin/bash [ -f /etc/init.d/functions ] && . /etc/init.d/functions array=( http://www.w ...
- 记一次给nginx的web服务器目录加软链接
先期情况和问题 已安装好nginx服务器和相关配置.nginx的web目录是/usr/share/nginx/html. 现在的问题是希望把web目录换成/root/nginx/html/,但是不更改 ...
- 利用itext生成pdf的简单例子
一.itext简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...
- 2019-03-18-day013-装饰器与内置函数
上周回顾 函数: def 函数名(): 缩进 函数体 闭包: a = 50 def func(): a = 10 def avg(): print(a) 函数名的使用: 当做值被赋值给变量 当做返回值 ...
- vue-router 不重新加载问题
-----------------------同一个路由不同的参数页面不重新加载的解决版本---------- // 监听 route , watch: { '$route': 'getContent ...
- JAVA_概念01_跨域
1.什么是跨域? 协议.域名.端口都相同是同域,否则是跨域. 服务器不允许ajax跨域获取数据 2.解决办法? ①jsonp :Jsonp不是一种数据格式,而json是一种数据格式,jsonp是用来解 ...
- HDU 6075 Questionnaire 17多校4 水题
Problem Description In order to get better results in official ACM/ICPC contests, the team leader co ...
- python3:logging模块 输出日志到文件
python自动化测试脚本运行后,想要将日志保存到某个特定文件,使用python的logging模块实现 参考代码: import logging def initLogging(logFilenam ...
- vue mapbox 地图 demo
执行以下命令: npm install --save mapbox-gl// cnpm install --save mapbox-gl <template> <div style= ...
- 行为参数化和Lambda表达式
行为参数化是指拿出一个代码块把他准备好却不执行它.这个代码块以后可以被程序的其他部分调用,意味着你可以推迟这块代码的执行.方法接受多种行为作为参数,并在内部使用来完成不同的行为.行为参数话的好处在于可 ...