Jmeter 实现 mqtt 协议压力测试

1. 下载jmeter,解压

https://jmeter.apache.org/download_jmeter.cgi

以 5.4.3 为例,下载地址:

https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.zip

linux下解压:

unzip apache-jmeter-5.4.3.zip

2. 下载mqtt-jmeter插件

下载地址:

https://github.com/emqx/mqtt-jmeter/releases

https://github.com/emqx/mqtt-jmeter/releases/download/v2.0.2/mqtt-xmeter-2.0.2-jar-with-dependencies.jar

3. 将插件放置于jmeter的lib/ext目录下

windows/linux同样操作

4. 本文先在windows下生成的jmx脚本,然后传至linux下使用

新建两个线程组

第二个里面包含具体的压测,开启1000个线程,1s内将线程创建完毕,无限循环。创建两个计数器,pub_counter用来技术发布消息数,thread_counter用来线程计数

事先创建1000个设备,名称为cosmoiottest000001 - cosmoiottest000001000(可自己定义)。添加一次性控制器(mqtt连接一次,后续pub消息),写上配置信息。

添加循环控制器,循环一次。包含固定定时器,休眠1000ms,一个发布MQTT Pub Sampler,即每个线程进来执行一次发布消息然后休眠1000ms进入下一次循环。每个消息包含100个点位(根据自己需要设置),每个点位随机生成一个整数。

添加观察结果树、汇总报告、聚合报告等,可在windows下面查看结果

配置截图如下:

循环执行线程

图片

pub_counter计数器

图片

thread_counter计数器

图片

mqtt connect设置:

图片

MQTT发布消息:

图片

5. linux压测命令:(需要先将bin/jmeter添加可执行权限)

chmod +x bin/jmeter

./bin/jmeter -n -t mqtt_test.jmx -l result.jtl

6. 将结果jtl生成可视化报告,放置于result目录

mkdir result

./bin/jmeter -g result.jtl -o result

将结果目录拉下来,点开即可查看图形化结果

注意可能遇到问题:

执行jmeter压测后,进程不退出,编辑 jmeter.properties,打开配置

jmeterengine.force.system.exit=true

jmx文件传到linux后可能出错,建议英文环境下生成jmx文件,语言控制jmeter.properties

#language=en (默认英文,切换为中文为:zh_CN)

mqtt-jmeter 的jar包需要传至lib/ext目录,否则不可用

生成报告时报错:

Consumer failed with message :Begin size 0 is not equal to fixed size 5

将jdk换成8版本

jtl结果文件,也可拉到windows,使用jmeter直接查看,新建线程组->聚合报告,选择jtl文件

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

  • 28
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好,我可以提供一个同时支持JMeter测试MQTT协议和Google Protocol Buffers协议的插件,它是MQTT Protocol Plugin for JMeter。该插件可以通过添加MQTT协议支持来扩展JMeter的功能,并提供了与Google Protocol Buffers协议的兼容性。 该插件可以通过JMeter插件管理器安装。安装后,您可以使用它来创建MQTT测试计划,并在测试计划中使用Google Protocol Buffers协议进行数据交换。希望这对您有所帮助! ### 回答2: 目前,JMeter并没有提供官方的插件来测试MQTT协议和Google Protocol Buffers协议。但是,我们可以通过使用第三方插件来实现这个目标。 要测试MQTT协议,可以使用Eclipse Paho插件。Paho是一个开源的MQTT客户端库,它提供了多种编程语言的实现。要在JMeter中使用Paho插件,首先需要下载Paho的Java实现。然后将相关的JAR文件添加到JMeter的classpath中。使用JMeter的Java Request Sampler可以使用Paho库编写自定义的Java代码来测试MQTT协议。 要测试Google Protocol Buffers协议,可以使用jmeter-protobuf插件。这个插件是一个JMeter的定制扩展,可以与Google Protocol Buffers集成。要使用该插件,首先需要将jmeter-protobuf插件的JAR文件添加到JMeter的lib/ext目录中。接下来,在JMeter中创建一个ProtoBuf PreProcessor和一个ProtoBuf PostProcessor,这样就可以在发送和接收请求之前和之后对数据进行编码和解码。 使用这两个插件,你可以在JMeter中编写和执行MQTT和Google Protocol Buffers测试计划。但是,请注意,这些插件需要一定的配置和编程知识来正确使用。建议查阅官方文档和示例代码,以确保正确地配置和使用插件。 总结而言,要同时测试MQTT协议和Google Protocol Buffers协议,可以使用第三方插件Eclipse Paho和jmeter-protobuf。这些插件需要额外的配置和编程知识,所以一定要仔细阅读和理解官方文档和示例代码。 ### 回答3: 目前,我所知道的一个同时用于JMeter测试MQTT协议和Google Protocol Buffers协议的插件是Eclipse Paho插件。 Eclipse Paho是一个开源的MQTT客户端库,它提供了用于连接、发布和订阅MQTT消息的API。通过集成Eclipse Paho插件,我们可以在JMeter实现MQTT协议的测试。 同时,Google Protocol Buffers是一种跨平台、语言无关的数据序列化机制,它可以在不同的平台和环境中进行数据交换。我们可以通过使用JMeter的扩展插件,如gRPC插件或Protobuf插件,来支持Google Protocol Buffers协议的测试。 要同时使用JMeter进行MQTT协议和Google Protocol Buffers协议的测试,我们可以按照以下步骤操作: 1. 下载和安装JMeter插件管理器,使我们能够方便地管理和安装JMeter的扩展插件。 2. 在JMeter插件管理器中搜索并安装Eclipse Paho插件,这样我们就可以使用该插件进行MQTT协议的测试。 3. 同样地,在JMeter插件管理器中搜索并安装gRPC插件或Protobuf插件,这样我们就可以使用其中的功能来支持Google Protocol Buffers协议的测试。 4. 在JMeter中创建测试计划,并添加MQTT Sampler和Protobuf Sampler来模拟相应的MQTT和Google Protocol Buffers请求。 5. 配置Sampler的参数,如服务器地址、端口号、订阅主题、发送的消息等等,以便进行相应的测试。 6. 运行测试计划,观察并分析测试结果,以评估系统在处理MQTT和Google Protocol Buffers协议时的性能。 总之,通过集成Eclipse Paho插件和适当的JMeter扩展插件,我们可以实现同时测试MQTT和Google Protocol Buffers协议的功能,并评估系统的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值