10. 构建 JMS 点对点测试计划¶
在本节中,您将学习如何创建 测试计划来测试 JMS 点对点消息传递解决方案。测试的设置是 1 个线程组,其中 5 个线程通过请求队列发送 4 条消息。一个固定的回复队列将用于监控回复消息。要构建测试计划,您将使用以下元素: 线程组、 JMS 点对点和 图形结果。
关于 JMS 的一般说明:目前有两个 JMS 采样器。一种使用 JMS 主题,另一种使用队列。主题消息通常称为发布/订阅消息。主题消息传递通常用于消息由生产者发布并由多个订阅者消费的情况。JMS 采样器需要 JMS 实现 jar 文件;例如,来自 Apache ActiveMQ。有关 ActiveMQ 提供的 jar 列表,请参见此处。
10.1 添加线程组¶
您想要对每个 JMeter 测试计划执行的第一步是添加一个 线程组元素。线程组告诉 JMeter 你想模拟的用户数量,用户应该多久发送一次请求,以及他们应该发送多少个请求。
继续添加 ThreadGroup 元素,首先选择 Test Plan,单击鼠标右键以获取
菜单,然后选择 。您现在应该在测试计划下看到线程组元素。如果您没有看到该元素,则通过单击“测试计划”元素“展开”测试计划树。
接下来,您需要修改默认属性。如果尚未选择树中的线程组元素,请选择它。您现在应该在 JMeter 窗口的右侧看到线程组控制面板(参见下面的图 10.1)
首先为我们的线程组提供一个更具描述性的名称。在名称字段中,输入Point-to-Point。
接下来,将用户数(称为线程)增加到5。
在下一个字段 Ramp-Up Period 中,将值设置为 0 秒。该属性告诉 JMeter 在启动每个用户之间延迟多长时间。例如,如果您输入 5 秒的 Ramp-Up Period,JMeter 将在 5 秒结束时完成启动所有用户。因此,如果我们有 5 个用户和 5 秒的 Ramp-Up Period,那么启动用户之间的延迟将为 1 秒(5 个用户 / 5 秒 = 1 个用户/秒)。如果您将该值设置为 0,那么 JMeter 将立即启动您的所有用户。
清除标有“永远”的复选框,并在循环计数字段中输入值4 。此属性告诉 JMeter 重复测试多少次。如果您输入循环计数值0,那么 JMeter 将只运行一次测试。要让 JMeter 重复运行您的测试计划,请选中Forever 复选框。
10.2 添加JMS点对点采样器¶
首先将采样器JMS 点对点添加 到点对点元素( )。然后,在树中选择 JMS 点对点采样器元素。在构建示例时,将提供一个适用于 ActiveMQ 3.0 的配置。
姓名 | 价值 | 描述 |
---|---|---|
JMS 资源 | ||
队列连接工厂 | 连接工厂 | 这是 ActiveMQ 中连接工厂的默认 JNDI 条目。 |
JNDI 名称请求队列 | Q.请求 | 这等于 JNDI 属性中定义的 JNDI 名称。 |
JNDI 名称回复队列 | Q.RPL | 这等于 JNDI 属性中定义的 JNDI 名称。 |
消息属性 | ||
沟通方式 | 请求响应 | 这意味着您至少需要一个在 JMeter 之外运行并且能够响应请求的服务。此服务必须侦听请求队列并将消息发送到message.getJMSReplyTo()引用的队列 |
内容 | 测试 | 这只是消息的内容。 |
JMS 属性 | ActiveMQ 不需要任何东西。 | |
JNDI 属性 | ||
初始上下文工厂 | org.apache.activemq.jndi.ActiveMQInitialContextFactory | ActiveMQ 的标准 InitialContextFactory |
特性 | ||
队列.Q.REQ | 例子.A | 这为指向队列示例的请求队列定义了一个 JNDI 名称Q.REQ 。 |
队列.Q.RPL | 例子.B | 这为指向队列示例的回复队列定义了一个 JNDI 名称Q.RPL。B |
提供者网址 | ||
提供者网址 | tcp://localhost:61616 | 这定义了 ActiveMQ 消息传递系统的 URL。 |
10.3 添加监听器以查看存储测试结果¶
您需要添加到测试计划的最后一个元素是 Listener。该元素负责将 JMS 请求的所有结果存储在一个文件中并呈现数据的可视化模型。
选择 Thread Group 元素并添加一个 Graph Results侦听器( )。接下来,您需要指定输出文件的目录和文件名。您可以在文件名字段中键入它,或者选择“浏览”按钮并浏览到一个目录,然后输入一个文件名。