构建 JMS 主题测试计划
现在让我们编写一个 JMeter 测试计划来测试 JMS Provider。我们将创建一个订阅者和一个发布者。我们将创建一个线程组并将每个线程组设置为两次迭代
首先让我们从 /home/manisha/apache-jmeter2.9/bin/jmeter.sh..
添加用户
现在创建一个线程组如下 -
我们将循环计数更改为 2。保留线程组的其余默认属性。这意味着一个线程组与一个线程或一个用户通过一个请求队列分别发送两条消息。
添加 JMS 订阅者和发布者
让我们看看如何添加订阅者和发布者 -
添加发布者
属性 |
值 |
描述 |
Name |
Sample Publisher |
树中显示的此元素的描述性名称。 |
If the JMS provider uses the jndi.properties file |
check the box |
使用 jndi.properties。请注意,该文件必须在类路径上——例如通过更新 user.classpath JMeter 属性。如果未选择此选项,JMeter 将使用“JNDI 初始上下文工厂”和“提供程序 URL”字段来创建连接。 |
InitialContextFactory |
org apache activemq jndi Active MQInitial Context Factory |
上下文工厂的名称。 |
Provider URL |
tcp://localhost:61616 |
jms 提供程序的 URL。 |
Connection Factory |
ConnectionFactory |
JMS 提供程序的 URL。 |
Destination |
dynamicTopics/MyStaticTopic1 |
消息主题的名称。对于 ActiveMQ 动态主题(动态创建主题)。 |
Number of samples to aggregate |
2 |
要聚合的样本数。 |
Message source |
Textarea |
从哪里获取消息 -
From File - 表示引用的文件将被所有样本读取和重用。
来自文件夹的随机文件 - 表示将从指定的文件夹中选择一个随机文件,该文件夹必须包含扩展名为 .dat 的文件用于字节消息,或扩展名为 .txt 或 .obj 的文件用于对象或文本消息
文本区域 - 用于文本或对象消息的消息
|
Message type |
Text |
文本、地图、对象消息或字节消息 |
其余属性保留默认值。以下屏幕截图显示了上述配置 -
添加订阅者
现在我们已经定义了我们的用户,是时候定义他们将要执行的任务了。
财产 |
价值 |
描述 |
名称 |
简单描述 |
树中显示的此元素的描述性名称。 |
If the JMS provider uses the jndi.properties file |
check the box |
使用 jndi.properties。请注意,该文件必须在类路径上——例如通过更新 user.classpath JMeter 属性。如果未选择此选项,JMeter 将使用“JNDI 初始上下文工厂”和“提供程序 URL”字段来创建连接。 |
InitialContextFactory |
org apache activemq jndi Active MQInitial Context Factory |
上下文工厂的名称。 |
Provider URL |
tcp://localhost:61616 |
JMS 提供程序的 URL。 |
Connection Factory |
ConnectionFactory |
JMS 提供程序的 URL。 |
Destination |
dynamicTopics/MyStaticTopic1 |
消息主题的名称。对于 ActiveMQ 动态主题(动态创建主题)。 |
Read response |
Check Box |
采样器应该读取响应。如果不是,则只返回响应长度。 |
Timeout |
2000 |
要应用的超时,以毫秒为单位。0=无。这是总体聚合超时,而不是每个样本。 |
其余属性保留默认值。以下屏幕截图显示了上述配置 -
创建监听器
现在添加 Listener 元素。此元素负责将 JMS 请求的所有结果存储在一个文件中并呈现数据的可视化模型。
保存并执行测试计划
现在将上面的测试计划保存为jms_pub_sub.jmx。使用 Run → Start 选项执行此测试计划。
验证输出
Output for Publisher
Output for Subscriber
返回到 ActiveMQ 的管理控制台。在这里我们可以看到主题中的消息状态。
![JMS 发布子管理控制台](/images/jmeter/jmspubsubtest_adminconsole.jpg)