暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【JMeter】mqtt接口测试

ERGOisTESTING 2021-07-16
5426

【背景】

      单纯使用mqttfx测试mqtt接口就像用postman测试http接口,能用但不够灵活自动,入参变量设置也不满足,加之简单场景组合,请求变化之间涉及的逻辑等等这些功能都能不满足,所以寻求jmeter开源插件,依托jmeter本身灵活便捷的特点辅助测试。



【正文】

1、插件下载:mqtt-xmeter-2.0.2-jar-with-dependencies.jar

链接:

https://pan.baidu.com/s/1Tog1Z7Wvb42Z62MimUJLiw

提取码:EGBB

(github上有开源的,但是网络问题一直下载不了,最后在CSDN花了50积分下载的


2、使用

放到\lib\ext目录下,重启jmeter

在线程组-右键点击sampler中能看到以下几个则安装成功


3、sampler配置简介

①MQTT Connect

        主要设置连接IP端口用户名密码这些信息,也可以设置超时时间等其他信息。

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

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

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

②MQTT Pub Sampler

        填写publish报文,填写topic name。

Retained message: 该值为TRUE表示保留消息,保留的消息会驻留在消息服务器,后来的订阅者订阅主题时仍可以接收该消息;该值为false表示不保留消息

③MQTT Sub Sampler

        订阅取样,填写topic name。

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

④MQTT Disonnect

        这个请求里没内容,只有注释,就是关闭链接用的。使用时注意如果有连续场景可以不用每次都断了重连,可以保持连接在最后测试结束一次关闭。


4、优化用户变量

        在配置原件-用户自定义变量中将变量配置进去,为了便于区分管理,将变量分为两块,一块是环境变量,包括ip端口用户名密码等,另一块是publish报文中需要用到的入参值。


5、运行效果


6、场景设计

        略。



【结语】

        其他使用技巧依据要测试的接口业务特性和逻辑设计场景,属于JMeter通用范畴,此处不表。

        使用jmeter插件形式测mqtt接口除了比mqttfx更加方便灵活,同时也能为之后的并发模拟测试做准备。(立个flag,后补

        github上开源的mqtt测试的JMeter插件不止这个,各有特点可以根据需要选择。


周末愉快米娜桑~

文章转载自ERGOisTESTING,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论