目录:
一、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.

测试计划结构:线程组、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的管理控制台:

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接口测试》作者:曹洪双