51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1193|回复: 0
打印 上一主题 下一主题

模拟设备通过MQTT发送数据之Jmeter

[复制链接]
  • TA的每日心情
    无聊
    昨天 09:02
  • 签到天数: 944 天

    连续签到: 3 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-12-28 11:20:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    需求: 需要一个工具能够支持MQTT协议发送各种不同的数据。
      目的: 模拟小型温室设备反馈,搭建一个测试环境,根据测试的数据显示硬件的状态和数值。
      工具:JMeter
      环境:需要配置Java运行环境。
      操作步骤:
     1. 下载JMeter运行包
      下载地址:jmeter.apache.org/download_jm…,下载后可以解压到任意目录。
      2. 安装JDK,配置Java的运行环境(请自行用谷歌或必应搜索)
      3. 启动jmeter的执行程序
      打开解压文件的bin目录,执行命令:sh jmeter
      打开后如下图,在新增测试计划的具体事例时,我们是找不到MQTT协议的。所以我们还需要安装MQTT的插件包。

      4. 安装MQTT插件
      从 GitHub 上下载最新版本插件?mqtt-xmeter-2.0.2-jar-with-dependencies.jar,该插件支持 JMeter 3.2 及以上版本。
      将插件 jar 包拷贝到 JMeter 的插件目录:$JMETER_HOME/lib/ext
      重新启动 JMeter。
      这时候在去创建测试事例,就能看到支持MQTT协议的测试入口了。

      5. 切换到中文
      默认是英文,可以手动切换成中文。


      如果想修改默认的语言配置,打开bin目录下的jmeter.properties文件,搜索language,把#language=en 改成language=zh_CH

      重启后,默认打开就是中文了。接下来我们开始创建一个MQTT的测试。
      6. 创建测试用例
      a. 创建线程组
      主要设置线程数、Ramp-Up时间和循环次数。下面表示的1秒钟内启动2个线程,发送1次请求数据。如果循环次数勾选永远,就会一直发送。

      b. 创建MQTT连接
      先创建一个Connect连接MQTT:

      注意超时时间,这里默认的是10毫秒,如果MQTT服务不稳定,可能会出现偶尔连不上的问题,建议1000毫秒.
      创建MQTT pub Sampler录入要发送MQTT的topic,如果需要发送不同数据,可以创建一个CVS,从表里获取数据。这时候在Pub sampler 里就需要使用${}来获取数据,字符串要加“”。

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

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

      最后,创建一个查看结果数,可以查看发送的明细。看汇总就创建一个汇总报告。
      如果要模拟多个设备,那就创建多个线程组即可。如果想要测试MQTT服务能承受多大的并发, 可以根据需要设置线程数和间隔时间,不过这个数量如果特别大的话,并发量会不精准,但总体上还是可以达到我们的测试目的。

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-9 04:15 , Processed in 0.062230 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表