MQTT压力测试工具之JMeter插件教程

摘要: MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)主要用于移动Push,移动IM,物联网M2M,物联网采集等,这些应用场景的特点是客户端的连接设备数比较多,那么如何在系统上线之前验证系统能否承受预先设计的压力呢?

MQTT简介

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它比较适合于在低带宽、不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物联网通信协议的重要组成部分。MQTT现在主要用于移动Push,移动IM,物联网M2M,物联网采集等,这些应用场景的特点是客户端的连接设备数比较多,那么如何在系统上线之前验证系统能否承受预先设计的压力呢?

JMeter MQTT插件

JMeter作为现在最流行的开源性能测试工具,实现了对各种协议的测试支持,比如HTTP/HTTPS,SOAP/REST,FTP,JDBC等。JMeter提供了灵活的插件机制,允许第三方扩展不支持的协议,网站 https://jmeter-plugins.org/ 中搜集了将近60多个插件,这些插件提供了各种功能,但是该网站并没有提供测试MQTT的插件。

经过上github上搜索,发现github tuanhiep是一个不错的插件,基本的MQTT测试功能都已经提供,但是在使用过程中发现有以下问题:

  1. 发现了一些bug:比如脚本中某些值无法保存等
  2. 使用不方便:使用该插件的过程比较麻烦,需要手工解压/打包JMeter的包,容易出错
  3. 只支持JMeter2.1版本,现在JMeter官方的最新版本已经到3.1,想使用最新版本的JMeter就会有问题

使用方法

针对于这些问题,我们fork了该项目,并且修复了在使用过程中发现的这些bug,并且让使用过程变得更加简单。

  1. 如果之前已经开着JMeter,请先关闭
  2. 从这里选择相应版本的插件进行下载
  3. 将下载的2个文件(ApacheJMeter_core.jar, mqtt-jmeter-jar-with-dependencies.jar)拷贝到JMeter的插件目录:$JMETER_HOME/lib/ext
  4. 重新启动JMeter
  5. 具体的使用过程可以参考插件的github主页

高级使用

如果发现有问题,可以直接拉项目代码进行修改,或者在该项目上创建相应的issue。如果需要重新打包,运行工程下面的repack_jmeter_core.xml脚本就可以了。需要注意的是,在运行之前,请先修改好脚本里的下面两行的值。其中第一行是所要打包的JMeter的版本的文件名(不包括扩展名,而且下载的必须是tar文件),第二行是你下载文件所在的目录。

<property name="jmeter_tar_file_name" value="apache-jmeter-3.0"/>
<property name="jmeter_tar_folder" value="/Users/rockyjin/Downloads"/>

运行成功后会显示如下所示的内容,并把目录/mqtt-jmeter/libs/${jmeter_tar_file_name}_new中的两个jar文件拷贝至$JMETER_HOME/lib/ext目录下。

Buildfile: /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/repack_jmeter_core.xml
unpack_jmeter:
[delete] Deleting directory /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0_new
[echo] Adding MQTT plugin resources...
[untar] Expanding: /Users/rockyjin/Downloads/apache-jmeter-3.0.tgz into /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs
repack:
[echo] Unzip original ApacheJMeter_core.jar
[unzip] Expanding: /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0/lib/ext/ApacheJMeter_core.jar into /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0/work_dir
[echo] Creating new ApacheJMeter_core.jar file
[jar] Building jar: /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0_new/ApacheJMeter_core.jar
[copy] Copying 1 file to /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0_new
[delete] Deleting directory /Users/rockyjin/Documents/workspace/rocky_jmeter_mqtt/mqtt-jmeter/libs/apache-jmeter-3.0
BUILD SUCCESSFUL
Total time: 2 seconds

大规模MQTT协议测试 – XMeter帮您提高效率,降低成本

针对大规模的MQTT协议测试,可能需要准备大量的测试机器对被测系统进行打压,这个过程需要大量的准备机器环境,以及管理这些环境的工作,导致工作效率比较低、而且容易出错。XMeter将这些过程迁移至云端,用户只要关注测试脚本的实现过程,而无需关心这些测试环境的管理,而且提供了丰富的测试报告,让性能问题一目了然。

免费试用

点击“XMeter性能测试SaaS服务”免费试用,注册帐户,并上传MQTT测试脚本至XMeter,

XMeter性能测试SaaS服务

XMeter是基于JMeter引擎的性能测试SaaS服务。本服务支持用户自助的上传JMeter测试脚本,发起性能测试,并提供实时的性能测试报告。

¥0/次

立即购买

登录

控制台

输入测试参数,虚拟用户数和运行时间,提交测试。后台会根据用户输入的测试参数,自动创建相应的VM对目标系统进行打压.

运行测试

通过测试报告可以查看一些关于测试的信息,比如测试的连接数,持续时间,当前的测试状态,也可以将测试日志下载下来进行检查等

测试结果

实时产生的测试报告,允许用户查看性能测试过程中最关心的性能测试指标。

实时测试结果 -实时报告

实时测试结果 - 实时图表

测试历史记录都被保存下来,可以随时进行查看和比较。

时间: 2024-10-14 09:42:20

MQTT压力测试工具之JMeter插件教程的相关文章

Jmeter压力测试工具安装及使用教程

一.Jmeter下载 进入官网:http://jmeter.apache.org/ 1.第一步进入官网如下图 2.选择进行下载,下载下来为一个压缩包,解压即可. 二.Jmeter环境变量相关配置 1.)   电脑桌面---->“计算机”图标---->鼠标右键选择“属性”---->点击高级系统设置---->高级--->环境变量页面 三.使用 原文地址:https://www.cnblogs.com/jiangqw/p/12142855.html

初步了解网站压力测试工具

一.ab网站压力测试 ab是apache自带的压力测试工具,ab是apachebench命令缩写.它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试.比如nginx.tomcat.IIS等. 如:ab -n 1000 -c 50 http://www.newdev.gztest.com/(-n 全部请求数  -c 并发数) Requests per second: 108.61 [#/sec] (mean) #每秒请 求数(平均)//大家最关心的指标之一,

apache压力测试工具的apache bench和JMeter的安装

Apache压力测试工具的安装 1,apache bench的安装 apache  bench工具集成在http的软件包内,可以直接安装apache就可以. 当有些时候,我们不需要用到所有的软件包,我们只需要安装安装其中的某个组件就可以, 例如apache  bench这个组件. 首先安装ab运行需要的软件包apr-util yum install apr-util 然后安装一个yum的工具包,为了可以单独弄出来ab 新建一个目录  mkdir /test 切换目录  cd /test yumd

Jmeter:图形界面压力测试工具

Jmeter是一款强大的图形界面压力测试工具,完全用Java写成,关于Jmeter的介绍,网上其实有不少的文章,我原本是不想再重复写类似文章的,但我发现有些很关键性的,在我们测试中一定会用到的一些设置或操作很少见到有文章写清楚的,比如有这样的一个常见问题:如何对一个网站的多个链接进行压力测试?因为通常情况下,我们要测试的不是一个链接,假如我们测试的是某一网站的话,而这些链接我们通常都是写入到一个文本文件中,测试的过程中,会随机读取文件中的链接进行压力测试,我们所熟知的一些压力测试工具,例如Sie

&#8203;Web压力测试工具使用教程

Web压力测试工具:http_load.webbench.ab.Siege使用教程 前言:常在网络飘,哪有不挨刀?做网站的站长说不准哪天得罪了XX人,二话不说直接操着DDOS就上来搞你了,黑不了你,哥就D死你,遇到这样的无赖,还真没办法,因此经常性的给自己的网站做做压力测试,看看服务器的承载能力是很有必要的一件事. 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单

【转】Jmeter:图形界面压力测试工具

Jmeter是一款强大的图形界面压力测试工具,完全用Java写成,关于Jmeter的介绍,网上其实有不少的文章,我原本是不想再重复写类似文章的,但我发现有些很关键性的,在我们测试中一定会用到的一些设置或操作很少见到有文章写清楚的,比如有这样的一个常见问题:如何对一个网站的多个链接进行压力测试?因为通常情况下,我们要测试的不是一个链接,假如我们测试的是某一网站的话,而这些链接我们通常都是写入到一个文本文件中,测试的过程中,会随机读取文件中的链接进行压力测试,我们所熟知的一些压力测试工具,例如Sie

Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程

分类: Web架构 2010-10-04 16:07 371人阅读 评论(0) 收藏 举报 测试工具web服务attributestransactionsauthenticationconcurrency 转:http://blog.licess.org/http_load-webbench-ab-siege/ 一.http_load 程序非常小,解压后也不到100K http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工 具,它可以以一个单一的

Web服务器性能压力测试工具http_load、webbench、ab、Siege使用教程

Web服务器性能压力测试工具http_load.webbench.ab.Siege使用教程 作者: feng 日期: 2012/07/25 发表评论 (0) 查看评论 一.http_load 程序非常小,解压后也不到100K,http_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把客户机搞死.还可以测试HTTPS类的网站请求. 官网:http://www.acme.com/software/http_loa

Web服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程 - VPS侦探

Web服务器性能/压力测试工具http_load.webbench.ab.Siege使用教程 - VPS侦探 http://soft.vpser.net/test/http_load/http_load-12mar2006.tar.gz