您的当前位置:首页正文

如何使用JMeter测试基于MQTT协议的系统

来源:华拓网

更新!

MQTT简介

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

JMeter 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. 具体的使用过程可以参考插件的

高级使用

<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将这些过程迁移至云端,用户只要关注测试脚本的实现过程,而无需关心这些测试环境的管理,而且提供了丰富的测试报告,让性能问题一目了然。

控制台

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


运行测试

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


测试结果 - 基本信息

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


实时测试结果 - 实时报告 实时测试结果 - 实时图表

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


测试历史记录

关于我们##

XMeter成立于2016年,核心团队都来自于IBM,是一家领先技术的性能测试持续集成咨询与服务提供商。我们致力于提供给客户可靠,简单,低成本的性能测试解决方案。