消息队列是目前的主流中间件,我们在日常测试过程中,无论是接口还是压力测试,都会遇到需要处理这些中间件数据的情况。本文以Activemq的Topic为例,说明如何基于Jmeter实现消息队列数据的发送和接受。
ActiveMQ
Apache ActiveMQ是Apache软件基金会研发的开源消息中间件,它是基于JMS规范实现的。JMS( Java Message Service ) Java 消息服务,是Java EE的规范,JMS允许应用程序基于Java平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及支持异步消息。
JMS常见2种消息模型
点对点(Queues队列) 生产者生产消息,消费者监听消息,消息只能被一个消费者取走
广播/订阅(Topics 队列) 生产者广播消息,订阅者监听消息,消息可以被所有订阅者取走
ActiveMQ的安装非常简单,官网下载安装包,启动完服务出现如下控制台界面,说明安装成功
Jmeter发布和消费消息
Jmeter内置对ActiveMQ的支持,Jmeter的lib里自带ApacheJmeter_jms.jar包,申明调用接口,在使用Jmeter处理消息队列以前,首先将activemq 下的 "activemq-all-5.x.x.jar" 复制到 "apache-jmeter-x.xxlibext" 文件夹下作为JMS接口的具体实现类。
新建Jmx脚本,在线程组下添加JMS发布者
? 运行脚本,查看结果树中显示运行成功
进入JMS控制台,发现新增上述步骤中添加的testtopic1,并且其中消息数随着脚本运行递增。
新增JMS订阅者,订阅上述步骤中的消息队列,运行脚本能够看到消息被消费
上述内容是以activemq为例的消息队列处理,目前业界主流的消息队列还有基于AMQP协议的RabbitMQ,预知后事如何,请听下回分解。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理