本文正在参与「金石方案 . 分割6万现金大奖」

需求: 需求一个东西能够支撑MQTT协议发送各种不同的数据。

目的: 模仿小型温室设备反馈,搭建一个测验环境,依据测验的数据显示硬件的状况和数值。

东西:JMeter

环境:需求装备Java运转环境。

操作步骤:

1. 下载JMeter运转包

下载地址:jmeter.apache.org/download_jm…,下载后能够解压到恣意目录

2. 装置JDK,装备Java的运转环境(请自行用谷歌或必应查找)

3. 发动jmeter的执行程序

翻开解压文件的bin目录,执行命令:sh jmeter

翻开后如下图,在新增测验方案的具体案例时,咱们是找不到MQTT协议的。所以咱们还需求装置MQTT的插件包

使用JMeter模拟设备通过MQTT发送数据

4. 装置MQTT插件

  1. GitHub 上下载最新版别插件mqtt-xmeter-2.0.2-jar-with-dependencies.jar,该插件支撑 JMeter 3.2 及以上版别。
  2. 将插件 jar 包拷贝到 JMeter 的插件目录:$JMETER_HOME/lib/ext
  3. 重新发动 JMeter。

这时候在去创立测验案例,就能看到支撑MQTT协议的测验进口了

使用JMeter模拟设备通过MQTT发送数据

5. 切换到中文

默许是英文,能够手动切换成中文。

使用JMeter模拟设备通过MQTT发送数据

假如想修改默许的言语装备,翻开bin目录下的jmeter.properties文件,查找language,把#language=en 改成language=zh_CH

使用JMeter模拟设备通过MQTT发送数据

重启后,默许翻开便是中文了。接下来咱们开端创立一个MQTT的测验。

6. 创立测验用例

a. 创立线程

主要设置线程数、Ramp-Up时刻和循环次数。下面表示的1秒钟内发动2个线程,发送1次恳求数据。假如循环次数勾选永远,就会一直发送。

使用JMeter模拟设备通过MQTT发送数据

b. 创立MQTT连接

  1. 先创立一个Connect连接MQTT

使用JMeter模拟设备通过MQTT发送数据
使用JMeter模拟设备通过MQTT发送数据

注意超时时刻,这儿默许的是10毫秒,假如MQTT服务不稳定,可能会出现偶然连不上的问题,主张1000毫秒

  1. 创立MQTT pub Sampler录入要发送MQTT的topic,假如需求发送不同数据,能够创立一个CVS,从表里获取数据。这时候在Pub sampler 里就需求运用${}来获取数据,字符串要加“”。

使用JMeter模拟设备通过MQTT发送数据

假如想要重复获取数据,在遇到文件结束符再次循环要选true,停止线程那里要选false。

使用JMeter模拟设备通过MQTT发送数据

  • 最好设置一个定时器,控制发送的频率。比方设置10毫秒一次,相当于1个线程1秒发送100次数据

使用JMeter模拟设备通过MQTT发送数据

最终,创立一个检查结果数,能够检查发送的明细。看汇总就创立一个汇总陈述。

假如要模仿多个设备,那就创立多个线程组即可。假如想要测验MQTT服务能承受多大的并发, 能够依据需求设置线程数和间隔时刻,不过这个数量假如特别大的话,并发量会不精准,但总体上还是能够达到咱们的测验目的。

本文正在参与「金石方案 . 分割6万现金大奖」