下面介绍一下插件的使用方法。

安装

从github下载您需要的release版本, 解压mqtt–xmeter-jar-with-dependencies.jar.zip, 将生成的jar文件放到JMeter安装主目录的lib/ext下,重启JMeter,在取样器中就可以看到插件成功加载。

【注】推荐在最新的JMeter5.4.1版本中安装使用本插件。

连接操作取样器

Server name or IP:指向被测MQTT服务器地址。【注】为灵活起见,属性值都可以引用JMeter的系统或自定义变量。

Port number:通常TCP连接的端口时1883, SSL连接则是8883。请参照服务器的具体配置。

Timeout(s):连接超时设置,以秒为单位。

Protocols:客户端与服务器通过SSL加密通道连接时,可以选择单向或者双向认证(Dual)。双向认证时,您还需要指定相应的信任秘钥库(Trust Key Store), 客户端证书,以及对应的文件保护密码(Secret)。这些文件可以通过服务器的证书配置转化得到。例如,对于EMQ的安装部署,/etc/cert下就存放了自签证的CA,服务器及客户端证书,参考下面的命令就可以生成插件所需的.jks, .p12文件,secret自行指定即可。

export PATH=$PATH:/bin

keytool -import -alias cacert -keystore emqtt.jks -file cacert.pem -storepass -trustcacerts -noprompt

keytool -import -alias client -keystore emqtt.jks -file client-cert.pem -storepass

keytool -import -alias server -keystore emqtt.jks -file cert.pem -storepass

openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.p12 -password pass:

User authentication:如果服务器配置了用户认证,您需要提供相应的用户名和口令。

ClientId prefix:标识客户端的固定前缀,每个连接(虚拟用户)再添加一个uuid串,整个作为客户标识。

Keep alive(s):心跳信号发送间隔。例如,300表示客户端每隔300秒向服务器发出ping请求,以保持连接活跃。

Connect attempt max:第一次连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。

Reconnect attempt max:后继连接过程中,尝试重连的最大次数。超过该次数则认为连接失败。

Clean session:设置为0,表示创建一个持久会话,在客户端断开连接时,会话仍然保持并保存离线消息,直到会话超时注销。

设置为1,表示创建一个新的临时会话,在客户端断开时,会话自动销毁。

发布操作取样器

发布(Pub)取样器的连接相关属性与连接取样器完全相同,下面只介绍Pub特有的属性。

Pub options:服务质量,取值为0,1,2,分别代表MQTT协议规范里的至多一次(AT_MOST_ONCE),至少一次(AT_LEAST_ONCE),精确一次(EXACTLY_ONCE)

Topic name:发布消息所属的话题 (订阅方可以根据话题不同选择订阅)

Add timestamp in payload:如果勾选,发布的消息体开头会附带当前时间戳,利用它可以在消息接收端计算消息达到的延时。不勾选则只发送实际的消息体。

Retained message: 该值为TRUE表示保留消息,保留的消息会驻留在消息服务器,后来的订阅者订阅主题时仍可以接收该消息;该值为false表示不保留消息,当payload为空且该值是true,                                     则会删除这条持久化的消息,如果当payload为空且该值是false,则不会删除这条持久化的消息。

Payloads:目前支持三种消息类

String: 普通字符串 (如上面截图所示)

Hex String: 以16进制数值表示的串,比如字符串Hello, 可以表示为48656C6C6F (其中,48在ascii表中对应字母H,依次类推)。通常16进制串用来构造非文本的消息体,例如描述某些私有的协议交互和控制信息等等。

Random string with fixed length: 按指定长度生成随机的串作为消息体。

订阅操作取样器

Sub options:服务质量,含义与发布操作取样器相同。

Topic name:订阅消息所属的话题。

Payload includes timestamp:如果勾选,会从消息体开头处解析发送时间戳,用于计算消息的接收延时。

Debug response:如果勾选,消息内容会打印在JMeter的响应结果中,用于调试目的。正式运行测试建议不勾选。

Sample on:采样方式,它控制如何采样。默认值为“elapsed with specified time(ms)”,这意味着子采样器将每指定毫秒发生一次(默认值为1000ms)。在1000 ms期间,可以接收多条消息,结果生成报告是1000 ms期间的摘要数据。如果该值设置为2000,则表示2000 ms期间的摘要报告。另一个选项是“number of received messages”,这意味着子采样器将在接收到这些指定数量的消息后发生(默认值为1)。

断开连接操作取样器

这个采样器非常简单,它只是清除先前创建的连接。因此,下次运行Connect sampler时,它将为您启动一个新的MQTT服务器连接。如果此时未检测到连接,则断开采样将立即失败。

混合负载的测试场景

运用以上3种MQTT取样器,结合JMeter灵活的测试控制,您可以制定各种类型的测试场景。下面我们举一个例子,构造一个混合负载的场景。mq客户端只连接一次,定时发布主题,以订阅到主题消息为一次测试用例结束。

我们定义3个虚拟用户,分别进行连接,发布,订阅操作。

连接者:添加一个仅一次控制器,模拟单个设备行为,仅一次连接

发布者:添加一个定时器,每隔3秒发送一条主题,带时间戳

订阅者:采样方式,接收到指定主题消息后发生

在JMeter中运行该场景,4秒钟左右运行结束。可以在测试结果树中看到每个操作的详细信息。表格视图的”Sample Time”列出了操作花费的时间(毫秒)。由于这次测试在本地,并发用户数很少,所以连接、消息发送、接收时延都很短。您可以指向实际的MQTT服务器,模拟更大的并发用户数。

mqtt压力测试软件,使用JMeter进行mqtt压力测试相关推荐

  1. 手机模拟续航测试软件,续航能力:使用场景模拟测试_平板电脑评测-中关村在线...

    ■电池容量 龙酷 X战神官方标配的是一块4000mAh的锂聚合物电池,并且可通过拆卸机身后盖的方式来更换电池,延长续航时间.不影响整体便携性的情况下还能做成可拆卸后盖的设计,这一点起码给了用户一种额外 ...

  2. 中文打字速度测试软件官网,中文打字速度测试软件

    使用该软件能够帮助用户测试自己的打字速度,阿宽中文打字速度测试软件专业的字数测试软件想知道自己打字速度水平赶快下载试试吧! 软件介绍: 中文打字速度测试软件是一款专业的用来测试打字速度的软件,软件安精 ...

  3. 温度压力测试软件什么好,鲁大师温度压力测试多少度正常?鲁大师压力测试靠谱吗?...

    类似鲁大师这样的测试软件其实都是制造硬件处理压力,通过主板上的温度传感器的数据得出结论,也并非是不靠谱,至少可以作为一个有效的参考,我们通过鲁大师温度压力测试后多少度正常呢?请听下文分析. 教程中使用 ...

  4. win7x64注册表显卡渲染速度_Geek3D GpuTest GUI(显卡测试软件)下载-Geek3D GpuTest GUI(显卡测试软件)免费版下载v0.7.0...

    Geek3D GpuTest GUI 能够对显卡的GPU.OpenGL进行基准压力的测试,而且测试完成也相当的快捷,功能强大,体积小巧,目前支持在windows 64位系统上进行测试,帮助用户检测显卡 ...

  5. 小学生数学测试软件c语言流程图,小学生数学测试软件-C语言课程设计

    小学生数学测试软件-C语言课程设计 C语言课程设计 设计期限 2013 年 6 月 17 开始 至 2013 年 6 月 20 结束 系 别 信息管理与信息系统 专 业 班级 学生姓名 学号 指导教师 ...

  6. 测试软件jm,JM3818无线静态应变测试分析系统

    JM3818无线静态应变测试分析系统每台仪器8点,可无限扩展.特别适合测点分布相对分散的工程测试场合. 系统支持有线和无线组网测试方式.有线方式支持单台USB接口直接联机测试:多台之间通过总线级联组网 ...

  7. 显卡测试软件3d mark,AllBenchmark(3D显卡测试工具)1.3 免费版

    ALLBenchmark是一个3D显卡测试软件和CPU测试超强工具,适合配置比较高的计算机,老电脑就不要拿出来测了,会宕机的. 以下为官方介绍(机器翻译,凑合看吧): 它可以检查您的计算机的图形处理能 ...

  8. 手机网络专业测试软件,3个专业网速测试APP,免费无广告

    3个专业网速测试APP,免费无广告 2021-02-01 22:01:54 332点赞 2352收藏 139评论 创作立场声明:应用市场大部分测速APP不是有内购就是充满广告,分享3个专业又免费无广告 ...

  9. 智能电视 屏幕测试软件,详解如何使用液晶电视测试软件

    详解如何使用液晶电视测试软件 昨天舅舅要买液晶电视,邀我前往相助,带了相机和本本,又下载了TFTTest和LCD-Test这俩测试软件,整装出发. 要了解一台高清电视的性能,最好的方法就是进行详细的测 ...

最新文章

  1. python3 json安装_python3下JSON和JsonPath
  2. 【年度技术观点合集】计算机视觉,自然语言,机器学习…看看顶级科学家们怎么说
  3. CNN-3: VGGNet 卷积神经网络模型
  4. 【转】 NSArray copy 问题
  5. 查询计算机系的所有教师,用sql查询所有计算机系的教师编号和姓名
  6. java架构师之路:JAVA程序员必看的15本书
  7. 10 部顶级数学纪录片
  8. win10添加网络打印机_Win7系统添加网络共享打印机
  9. 暴躁算法(剑指系列)-每日一练
  10. python yield是什么意思_python yield有什么用
  11. 计算机金钱符号怎么打,电脑键盘上怎么打钱的符号
  12. 我的世界服务器玩家在线指令,我的世界指令大全:管理自己或者其他玩家及管理服务器指令...
  13. 国内外电商平台反爬虫机制报告
  14. truffle init error,unbox Downloading报错问题
  15. 条码旋转后打印不清楚
  16. 幻想乡三连C:狂飙突进的幻想乡
  17. 手写:下划线转为驼峰命名法
  18. Go语言(Golang)是什么?
  19. 【ESP 保姆级教程】玩转emqx SSL篇① ——认证证书 SSL
  20. java使用环境_java使用环境变量配置

热门文章

  1. 披萨店小程序_比萨问题–建造者与装饰者
  2. Linux | 用户态与内核态详解
  3. 图结构练习——BFS——从起始点到目标点的最短步数(邻接表+BFS)
  4. 声品质粗糙度matlab,声品质的应用分析方法
  5. 数据库优化器浅析 - Cascades
  6. 我推出银行间外汇市场人民币外汇货币掉期交易
  7. 矿井水行业氟超标的解决方法
  8. 字节跳动面试问题及答案java,含面试题+答案
  9. 如何提出高质量的bug
  10. C++安全方向(三)3.8 HMAC算法介绍和安全分析