【保姆级】JMeter Mqtt 压测配置
忽然有个紧急任务要对某个服务做MQTT做压测,紧急实操下JMeter,这里记录下非专业测试员的测试过程、(´▽`),欢迎👏大家检查指点( ̄∇ ̄)/
下载⏬工具
JMeter官方下载地址
https://jmeter.apache.org/download_jmeter.cgi
![](https://img-blog.csdnimg.cn/img_convert/592b265eabb43e93c5e76fa96e979885.png)
![](https://img-blog.csdnimg.cn/img_convert/e3dd4e2c77d5928f74e2487c51349f61.png)
然后解压,一般长这样(如下图)
![](https://img-blog.csdnimg.cn/img_convert/6e37f76fd901849fcaeeb43a6ba04e7e.png)
MQTT jar包下载地址
https://github.com/emqx/mqtt-jmeter
![](https://img-blog.csdnimg.cn/img_convert/767714fc9a8b2705b6b0b45efcf99ba0.png)
选个版本
![](https://img-blog.csdnimg.cn/img_convert/82172df873e2d932f407f956c627724d.png)
![](https://img-blog.csdnimg.cn/img_convert/61ad03b785915e50a34e338be5e13cd9.png)
将下载好的jar包放入解压后的文件夹lib中的ext文件夹中(具体位置如下题),之后重启JMeter
![](https://img-blog.csdnimg.cn/img_convert/63ce9ca7bfd1db9b1f6b5fc806d927d5.png)
新建🆕组件
添加线程组(Thread Group)
JMeter执行是通过线程组进行驱动的,测试计划必须最少有一个线程组
右键:Add>Threads(Users)>Thread Group
![](https://img-blog.csdnimg.cn/img_convert/8423b18b1b29659806a45786bfb388f8.png)
添加取样器(Sampler)
添加连接请求
选中刚才创建的线程组,右键::Add>Sampler>MQTT Connect
![](https://img-blog.csdnimg.cn/img_convert/36cd4a10718130b835047de75509815e.png)
添加发布请求
选中刚才创建的线程组,右键:Add>Sampler>MQTT Pub Sampler
![](https://img-blog.csdnimg.cn/img_convert/e1c5d5982b94c0a77ac21d74e5cf097c.png)
添加订阅请求
选中刚才创建的线程组,右键:Add>Sampler>MQTT Sub Sampler
![](https://img-blog.csdnimg.cn/img_convert/c47313b8bfb059702b8f410232717f62.png)
添加控制器
仅执行一次控制器
由于在测试过程中我们一般只需要连接一次,所以添加一个仅一次控制器(不管执行多少次循环,这个线程只执行一次)
右键:Thread Group>Add>Logic Controller>Once Only Controller
![](https://img-blog.csdnimg.cn/img_convert/53dedb1870ad40651fd857ab782114f5.png)
添加完成后将 MQTT Connect 移到 Once Only Controller 里面
循环控制器
因为要循环发送MQTT消息
右键:Thread Group>Add>Logic Controller>Loop Controller
![](https://img-blog.csdnimg.cn/img_convert/06639eea3c5603175e1d2a5d46817429.png)
添加完成后将 MQTT Sub Sampler 移到 Loop Controller 里面
添加监听器
用于查看结果树、报告等测试结果(请求参数和响应结果等)
右键线程组,Add>Listener>View Results Tree/Summary Report/Aggregate Report(主要是这3个,具体根据实际情况进行添加)
![](https://img-blog.csdnimg.cn/img_convert/e04fa1effa2126bd2268e7c58886c731.png)
需要的都添加完成后,长下图这个样子
![](https://img-blog.csdnimg.cn/img_convert/2dfbd891150d4ffe889dee37880d8c6f.png)
参数配置说明
配置线程信息
序号1处配置线程数量,序号2处配置循环次数
![](https://img-blog.csdnimg.cn/img_convert/c4615cdecf53b5f1afb12cdd28df43dc.png)
配置MQTT连接信息
序号1处配置IP地址,序号2处配置用户名和密码(如果有的话,没有就空着)
![](https://img-blog.csdnimg.cn/img_convert/1fcb8d4dbb3e8045ec5af95b8b8a1f7a.png)
配置topic
配置订阅的topic
![](https://img-blog.csdnimg.cn/img_convert/b81a663e4b916f08612433a5083aa6fe.png)
配置发布的topic
序号1处配置发布的topic,序号2处放发送的消息
![](https://img-blog.csdnimg.cn/img_convert/f96478ef3b6a7e4c28c43b523d7af261.png)
配置执行次数
给循环控制器配置循环次数(如下图,配的是100,如果选旁边Infinite就会一直发)
![](https://img-blog.csdnimg.cn/img_convert/3d533ac3d2b627481aa6186620b16f1b.png)
消息发布的总次数就是一开始线程中的循环次数*这里配置的循环次数
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击