Jmeter测试ActiveMQ服务

Posted 软件测试呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter测试ActiveMQ服务相关的知识,希望对你有一定的参考价值。

一、什么是JMS

JMS(java Message Service):即 Java 消息服务器应用程序接口,是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对 jms提供支持。它是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java 应用程序进行消息交换,并且通过提供标准的产生,发送,接受消息的接口简化企业应用的开发。

也就是:JMS是一个标准或者是一个协议,通常用于企业应用的消息传递。

如图就是 JMS Point-to-Point 的模型:

发送者和接受者:

接受者从队列中获取消息,在成功接收消息之后需向队列应答成功。发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,都不会影响消息被发送到队列。

消息队列:

每个消息都被发送到一个特定的队列。队列保留着消息,直到他们被消费或超时。每个消息只有一个消费者,一旦被消费,消息就不在消息队列中了。

二. ActiveMQ介绍

它是Apache出品,最流行,能力最强劲的开源消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者。

ActiveMQ是通过什么工作模式来进行的?如图:
ActiveMQ 工作模式中的部分解释如下:
ActiveMQ客户端使用 Connection Factory 对象创建一个连接,向消息服务发送消息以及从消息服务接收消息均是通过此连接来进行。
Connection是客户端与消息服务的活动连接。这是一个相当重要的对象,大多数客户端均使用一个连接来进行所有的消息传送。
Session是用于生产和使用消息的单线程上下文。它用于创建发送和生产者和接收消息的消费者,并为所发送的消息定义发送顺序。

客户端使用Message Product想指定的物理目标发送消息,客户端使用Message Consumer对象从指定的物理目标接收消息。消费者可以支持同步或异步消息接收。异步使用可通过向消费者注册 MessageListener 来实现。

三. JMS脚本开发

1、创建 jndi.properties 文件

jmeter是通过jndi来获得jms中相关对象的,如ConnectionFactory和Destination,所以要在jmeter的bin目录中添加一个jndi.properties属性文件,用于配置jndi

2、把jndi.properties放到jmeter的启动jar包中

可以直接将jndi.properties文件拖入jar包中;打开命令行窗口,并定位到 JMETER_HOME/bin 目录,运 行如下命令 :
3、添加activemq-all-5.2.0.jar包到Jmeter的lib库

将ACTIVE_HOME/activemq-all-5.2.0.jar文件复制到JMETER_HOME/lib目录中,jmeter在测试jms的时候会使用到activemq提供的jms的实现类,这些类并没有随jmeter一起分发,需要把这些类添加到jmeter的lib目录中。

4、启动 ActionMQ 服务
启动之后,在浏览器访问url:http://127.0.0.1:6161/admin,默认用户名和密码:admin
很快就很快就会进口核苷酸分公标志性不怎么
5、启动 jmeter添加线程组及JMS的 sampler,有三种方式的JMS消息
●在jmeter的Sampler下面新建JMS Point-to-Point,信息如下:

○ QueueuConnectionFactory:MQ 连接工厂,此处填写:ConnectionFactory

○ JNDI name Request queue: 请求队列,输入配置文件的 MyQueuePertest

○ JNDI name Receive queue: 接收队列名,输入配置文件的 MyQueuePertest

○ Communiction Style: Request Only

○ Content: 消息内容,此处填写:jmeter jms point to point,pertest

○ Initial Context Factory: 输入配置文件的 org.apache.activemq.jndi.ActiveMQInitialContextFactory

○ JNDI Properties: org.apache.activemq.jndi.ActiveMQInitialContextFactory

○ Provider URL:ActionMQ 地址和端口
如图:

查看结果:

测试JMS的PUB/SUB模型

需要新建立消费者模型,新建取样器:JMS Subscriber
●信息如下

○initial Context Factory: org.apache.activemq.jndi.ActiveMQInitialContextFactory

○ConnectionFactory:MQ 连接工厂,此处填写:ConnectionFactory

○Provider URL:tcp://127.0.0.1:61616

○Destination:MyTopicPertest

○Text Message:This is test jms publisher
●启动该线程

●查看发送者
消费者

房子要一层一层盖,知识要一点一点学。大家在学习过程中要好基础,多上手实操,话不多说,这里狠狠上一次干货!我熬夜整理好的各阶段(功能、接口、自动化、性能、测开)技能学习资料+实操讲解,非常适合私下里学习,比找资料自学高效多了,分享给你们。

领取关 w/x/g/z/h:软件测试小dao

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找。

以上是关于Jmeter测试ActiveMQ服务的主要内容,如果未能解决你的问题,请参考以下文章

ActiveMQ测试工具

敲重点啦!| Jmeter测试ActiveMQ服务

JMeter4.0学习JMeter对JMS性能测试脚本开发

JMeter学习(二十九)使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建请求创建插件安装监听服务器资源等

jmeter怎么测试activemq

如何使用JMeter对Apache ActiveMQ进行压力测试?