【JMeter4.0学习(四)】之JMeter对JMS性能测试脚本开发

目录:

一、ActiveMQ官方下载地址http://activemq.apache.org/download.html

下载完成后,解压到指定文件夹下,然后启动服务:

在CMD中先定位到bin文件夹下,再输入:activemq start

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

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

【参照文章】:《ActiveMQ 用户名密码设置》作者:MIC2016

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

 最后,复制解压路径下的activemq-all-x.x.x.jar(XXX的版本而定)从ActiveMQ的解压目录   /apache-jmeter-2.9/lib.

 

二、JMeter JMS点到点测试计划

测试计划结构:线程组、JMS Point-to-Point、监听器等

主要说一下“JMS Point-to-Point”,其他的之前已经说过,在这里就不一一陈述了。

1、JMS Point-to-Point配置

打开之后,进行以下配置:

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

Request Response

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

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

org.apache.activemq.jndi

.ActiveMQInitialContextFactory

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

2、点击运行启动

最后返回ActiveMQ的管理控制台

三、JMeter对JMS主题测试计划

1、添加发布

添加采样JMS发布到发布元素 (Add > Sampler > JMS Publisher).

 设置JMS Publisher的值:

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

org.apache.activemq.jndi.ActiveMQInitial

ContextFactory

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

2、添加订阅服务

增加采样JMS订阅服务器上认购元素 (Add > Sampler > JMS Subscriber).

 设置JMS Subscriber的值:

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

org.apache.activemq.jndi.ActiveMQInitial

ContextFactory

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

3、添加监听器并运行

JMS Publisher结果树:

JMS Subscriber结果树:

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

最后返回查看ActiveMQ的管理控制台

主题:

订阅:

附:相关学习地址

使用Jmeter测试JMS》作者:hunterno4的专栏

JMeter之JMS接口测试》作者:曹洪双

jMeter JMS测试计划(点到点、主题)》作者:易百教程

官方学习文档(JMS_Point-to-Point)

ActiveMQ 控制台使用方法》作者:有 prepare , No out

原文地址:https://www.cnblogs.com/Owen-ET/p/8986348.html