基于Jmeter实现Rocketmq消息发送

 🔥 交流讨论:欢迎加入我们一起学习!

🔥 资源分享耗时200+小时精选的「软件测试」资料包

🔥 教程推荐:火遍全网的《软件测试》教程  

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

在互联网企业技术架构中,MQ占据了越来越重要的地位。系统解耦、异步通信、削峰填谷、数据顺序保证等场景中,到处都能看到MQ的身影。

而测试工程师在工作中,也经常需要和mq打交道,比如构造测试数据,触发某些业务场景,以及针对mq的性能测试等。

目前业界中比较知名的mq产品有kafka、rabbitmq、rocketmq等。今天我主要来介绍下如何使用Jmeter来向rocketmq发送消息,实现对mq发消息功能的性能测试。

先来简单介绍下Rocketmq
RocketMQ 是一款分布式、队列模型的消息中间件,是阿里巴巴集团自主研发的专业消息中间件,历经多次天猫双十一海量消息考验。目前已经捐赠给Apache基金会,并于2016年11月成为Apache 孵化项目。

1
MQ基本概念

Message:消息,消息队列中信息传递的载体

Topic:消息主题,一级消息类型,通过 Topic 对消息进行分类

Tag:消息标签,二级消息类型,用来进一步区分某个 Topic 下的消息分类

Producer:消息生产者,也称为消息发布者,负责生产并发送消息

Consumer:消息消费者,也称为消息订阅者,负责接收并消费消息

2
RocketMQ 的 4 个组件

分别是 nameserver、broker、producer 和 consumer

Broker: 集群最核心模块,主要负责 Topic 消息存储、消费者的消费位点管理(消费进度)Producer: 消息生产者,每个生产者都有一个 ID(编号)

nameserver: 存储当前集群所有 Brokers 信息、Topic 跟 Broker 的对应关系

Consumer: 消息消费者,每个订阅者也有一个 ID(编号)

3
MQ消息收发模型

图片

理解上面几个概念后,我们来编写Jmeter脚本。

在idea中创建一个Java工程,并引入Rocketmq和Jmeter的依赖包,先编写一个demo脚本。Rocketmq的消息发送代码非常的简单,几行代码轻松搞定,代码如下:

图片

运行脚本,可以看到打印的结果“SEND_OK”字样,代表消息发送成功。

登录到rocketmq控制台页面,可以搜索到刚才发送的消息。

图片

到目前为止,测试脚本已经调试通过,只需要将脚本转换为Jmeter的脚本即可。具体分为以下几步:

1、 创建一个测试类,实现Jmeter的JavaSamplerClient接口,需要实现接口中的4个方法,分别为:

setupTest:脚本的初始化操作,每个线程启动时执行,且仅执行一次

runTest:Jmeter线程循环执行的方法

teardownTest:Jmeter结束方法,每个线程结束时执行,且仅执行一次

getDefaultParameters:需要暴露在Jmeter界面中的参数,本文中暂时不需要

根据四个方法的特点,将对应的mq代码操作放到不同方法中,详细解释可见注释代码如下:

图片

2、 将Java脚本及其依赖包导出为jar包,然后放到jmeter的lib/ext目录下

图片

3、 打开Jmeter,新建“Java请求”,选择刚才的写的脚本类

图片

4、 在查看结果树中查看执行结果,可以看到“SEND_OK”等字样,代表发送消息成功了。

图片

就这样,一个基于Jmeter的发送MQ消息脚本就完成了,如果想做压测的话,在Jmeter里配置上线程数和持续时间就可以开始压测了。

最后我邀请你进入我们的【软件测试学习交流群:785128166】, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路

作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!

  • 25
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用JMeter进行Rocketmq压测时,需要注意以下几点: 1. 确保Rocketmq服务端已经启动,并且正确配置了Broker和NameServer。 2. 确保Rocketmq JMS客户端已经正确安装,并且可以被JMeter正常调用。 3. 在JMeter中设置好压测的参数,例如消息发送间隔、消息大小等。 4. 在运行JMeter之前,最好先进行一次简单的压测,以确保配置正确,并排除可能存在的问题。 Rocketmq是一款高性能、高可靠的分布式消息中间件,广泛应用于各种场景中。为了保证Rocketmq的稳定性和可靠性,在实际应用中我们需要对其进行压测。JMeter是一款常用的压测工具,可以用于测试Web应用、Web服务、数据库以及各种协议。通过编写插件,我们可以使用JMeterRocketmq生产者进行压测。 在实际应用中,可以根据具体需求进行参数设置和插件编写,以满足不同的压测场景。使用JMeter进行Rocketmq压测可以帮助我们评估Rocketmq在高负载情况下的性能表现和可靠性,并且可以及早发现和解决潜在的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [基于JMeterRocketMQ压测](https://blog.csdn.net/BASK2312/article/details/130702066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值