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


JMS(java Message Service):即 Java 消息服务器应用程序接口,是一个 Java 平台中关于面向消息中间件(MOM)的 API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对 jms提供支持。它是Java平台上有关面向消息中间件(MOM)的技术规范,它便于消息系统中的Java 应用程序进行消息交换,并且通过提供标准的产生,发送,接受消息的接口简化企业应用的开发。
也就是:JMS是一个标准或者是一个协议,通常用于企业应用的消息传递。如图就是 JMS Point-to-Point 的模型:

发送者和接受者:
接受者从队列中获取消息,在成功接收消息之后需向队列应答成功。发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,都不会影响消息被发送到队列。
消息队列:
每个消息都被发送到一个特定的队列。队列保留着消息,直到他们被消费或超时。每个消息只有一个消费者,一旦被消费,消息就不在消息队列中了。

它是Apache出品,最流行,能力最强劲的开源消息队列服务,是面向消息中间件(MOM)的最终实现,是真正的服务提供者。
ActiveMQ是通过什么工作模式来进行的?如图:

ActiveMQ 工作模式中的部分解释如下:
ActiveMQ客户端使用 Connection Factory 对象创建一个连接,向消息服务发送消息以及从消息服务接收消息均是通过此连接来进行。Connection是客户端与消息服务的活动连接。这是一个相当重要的对象,大多数客户端均使用一个连接来进行所有的消息传送。Session是用于生产和使用消息的单线程上下文。它用于创建发送和生产者和接收消息的消费者,并为所发送的消息定义发送顺序。
客户端使用Message Product想指定的物理目标发送消息,客户端使用Message Consumer对象从指定的物理目标接收消息。消费者可以支持同步或异步消息接收。异步使用可通过向消费者注册 MessageListener 来实现。

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
●启动该线程
●查看发送者

消费者

说明:本文为柠檬班库里老师原创,转载需注明出处