Jmeter-JMS Test Plan

参考:https://blog.csdn.net/fanxiyanhong/article/details/51479532

https://www.cnblogs.com/Owen-ET/p/8986348.html#no0

MOM 作为消息数据交换的平台,也是影响应用执行效率的潜在环节。在 Java 程序中,是通过 JMS 与 MOM 进行交互的。作为 Java 实现的压力测试工具,JMeter 也能使用 JMS对应用的消息交换和相关的数据处理能力进行测试。这一点应该不难理解,因为在整个测试过程中,JMeter 测试的重点应该是消息的产生者和消费者的本身能力,而不是 MOM本身。

JMS提供了两种消息通信模型:

Ø 点到点(P2P)模型

Ø 发布/订阅(Pub/Sub)模型

 

在ClientA、C、D之间的消息是点对点模型,使用这种模型,客户端发送消息到队列目的地(Queue),从这个队列里面只有一个消息接收者可以收到那个消息,其他访问同一目的地的接收者不会接收到该消息。如ClientC接收Queue中的Msg1消息,ClientD接收Queue中的Msg2消息。

在ClientB、E、F之间的消息是发布/订阅模型。使用这种广播模型,一个客户端发送消息给主题目的地(Topic),任何数量的消费订阅者可以从这个主题目的地来接收它们。如:ClientE和ClientF都接收这个Msg3这条消息

使用Jmeter测试ActiveMQJMS消息

以下MOM我们使用ActiveMQ ,分别描述发布/订阅和点对点这两种消息交换方式是如何使用 JMeter 进行测试。

一、JMeter JMS PTP测试计划

1.测试前准备

• ActiveMQ官方下载地址: http://activemq.apache.org/components/classic/download/

 

• JMeter 虽然能使用 JMS 对 MOM 进行测试,但是它本身并没有提供JMS需要使用的包。下载解压Activemq 将 activemq-all-5.15.9.jar复制至apache-jmeter-4.0\lib目录下

 

2.测试步骤

•  启动ActiveMQ:打开dos窗口,进入ActiveMQ解压目录下的bin目录,输入命令:activemq.bat start
Tips:在启动ActiveMQ前,修改conf目录下的activemq.xml中的配置

<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=65535&amp;wireFormat.maxFrameSize=104857600"/>

上面标记的这个数字为最大连接数,自己设置,如果太小的话会导致发送的请求都被拒绝

• 打开浏览器验证服务启动成功,输入ActiveMQ的管理控制台地址:http://localhost:8161/admin/index.jsp

(填写用户名密码,用户名密码信息保存在conf/jetty-realm.properties文件中)

如果登录后显示下图,证明服务启动成功!

•  启动Jmeter
•  添加一个线程组
•  添加Samper:选择JMS POINT TO POINT
•  配置JMS POINT TO POINT:

 设置JMS Point-to-Point的值:

属性描述
JMS Resources
QueueuConnectionFactoryConnectionFactory这是默认JNDI条目内ActiveMQ连接工厂。
JNDI Name Request QueueQ.REQJMeter JNDI名称使连接工厂和队列之间的连接。
JNDI Name Receive QueueQ.REQJMeter JNDI名称使连接工厂和队列之间的连接。我们都使用相同的响应队列。
Message properties
Communication Style

Request Response

(注:JMeter4.0中为:选择request_reply)

这意味着至少需要服务运行JMeter外,将响应请求。此服务必须侦听请求队列,并发送消息引用的队列由message.getJMSReplyTo()
Use Request message IDchecked可以留下JMeter的使用消息ID请求传入的消息并回收之间的相关性(押金)。
Use Response message IDchecked可以留下使用JMeter的消息标识符响应(恢复)传入的消息和恢复之间的相关性。
Time(milliseconds)2000(非必填)使用此超时的消息时,如果没有收到JMeter的恢复时间(这里2秒),那么该项目将被标记错误。
Contenttest该消息是测试内容。
JMS Properties 对Active MQ而言并不需要这项
JNDI Properties
InitialContextFactory

org.apache.activemq.jndi

.ActiveMQInitialContextFactory

Active MQ标准InitialContextFactory
queue.Q.REQexample.A之间的对应关系的队列JNDI名称(Q.REQ)的队列中的ActiveMQ(example.A)真实姓名。
queue.Q.RPLexample.B之间的对应关系的队列JNDI名称(Q.RPL)的队列中的ActiveMQ(example.B)真实姓名。
Provider URLtcp://localhost:61616ActiveMQ地址和端口。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 • 点击运行,查看结果

• 最后返回ActiveMQ管理控制台:

 

 二、JMeter JMS PUB/SUB测试计划

1.添加发布:

•  启动Jmeter
•  添加一个线程组
• 添加采样JMS发布到发布元素:选择 JMS Publisher
•  配置 JMS Publisher:

设置JMS Publisher的值:

属性描述
If the JMS provider uses the jndi.properties filecheck the box使用jndi.properties。请注意该文件必须在classpath - 例如通过更新user.classpath JMeter的属性。如果这个选项没有被选中,JMeter使用“JNDI初始上下文工厂”和“提供URL”字段创建连接。
InitialContextFactory

org.apache.activemq.jndi.ActiveMQInitial

ContextFactory

Name of the context factory.
Provider URLtcp://localhost:61616JMS提供者的URL。
Connection FactoryConnectionFactory连接工厂。
DestinationdynamicTopics/MyStaticTopic1消息主题的名称。对于ActiveMQ的动态主题(动态创建主题)。
Number of samples to aggregate2聚集的样品数量。
Message sourceMessage
在哪里获得消息:
从文件:表示引用的文件,将所有样品读取和重用
随机文件从指定的文件夹如下:指从指定的文件夹下面,将选择一个随机文件,这个文件夹必须包含两种副档名为.dat字节的消息,或带扩展名的文件.txt或.obj对象或文本消息。
文本区域使用文本或对象消息:消息
Message typeText文字,地图,对象消息或字节消息

 

2.添加订阅服务:

•  增加采样JMS订阅服务器上认购元素:选择 JMS Subscriber
•  配置 JMS Subscriber

 

设置JMS Subscriber的值:

属性描述
If the JMS provider uses the jndi.properties filecheck the box使用jndi.properties。请注意该文件必须在classpath - 例如通过更新user.classpath JMeter的属性。如果这个选项没有被选中,JMeter使用“JNDI初始上下文工厂”和“提供URL”字段创建连接。
InitialContextFactory

org.apache.activemq.jndi.ActiveMQInitial

ContextFactory

Name of the context factory.
Provider URLtcp://localhost:61616JMS提供者的URL。
Connection FactoryConnectionFactory连接工厂。
DestinationdynamicTopics/MyStaticTopic1消息主题的名称。对于ActiveMQ的动态主题(动态创建主题)。
Read responseCheck Box采样器读取响应。如果没有,只有响应的长度将被返回。
Timeout2000指定的超时时间,以毫秒为单位。 0=null。这是整体的总超时,而不是每个样品。

 

3.添加监听器并运行

JMS Publisher结果树:

 

 

JMS Subscriber结果树:

发布的值响应到了订阅服务中:

• 最后返回ActiveMQ管理控制台:

主题:

订阅:

 

转载于:https://www.cnblogs.com/kaymi/p/11377342.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值