新建一个 JMS 主题的测试计划


JMS 需要下载一些可选的jar 文件。详细信息请参阅 第一章:新手入门。在本章节,将学习如何创建测试计划来测试JMS提供程序。创建5个订阅者和1个发布者。创建2个线程组并且设置每个线程组迭代10次。消息总数是(6个线程)x (1 个消息)x(重复10次)= 60 个消息。为了构建测试计划将使用以下元素:线程组 , JMS 发布者, JMS 订阅者, 和 图结果

关于JMS的一般注意事项:目前有两种 JMS 采样器(samplers)。一种使用 JMS 主题(topics),另一种使用队列(queues)。主题消息通常被称为发布/订阅消息。主题消息传递通常用于消息由生产者发布并由多个订阅者消费的情况。队列消息传递通常用于发件人期望响应的事务。消息系统与普通的HTTP请求完全不同。在HTTP中,一个用户发送一个请求并得到一个响应。消息系统可以通过同步和异步模式工作。JMS采样器需要JMS实现的jar文件(由于JMeter不提供JMS实现的jar,需要下载后放置lib库); 例如,来自Apache ActiveMQ。请参阅这里 查看 ActiveMQ 提供的 jar 列表。

1 添加用户


第一步是添加一个线程组元素。线程组告诉JMeter想要模拟的用户数量,发送请求的频率以及发送请求的数量。

添加线程组元素,首先选择测试计划,单击鼠标右键获取添加菜单,然后选择 添加 → 线程组。此时可以在测试计划下面看到线程组元素,如果不能,可以通过在测试计划元素上单击“展开”测试计划树。

接下来,你需要修改默认属性。如果尚未选择树中的线程组元素,请先选择。此时可以看到JMeter窗口右侧的线程组控制面板

首先为我们的线程组提供一个更具描述性的名称。在名称字段输入: Subscribers 。

接下来,将用户(称为线程)的数量增加到 5。

在下一个字段 Ramp-Up Period 中,将该值设置为 0 秒。这个属性告诉JMeter启动每个用户之间要延迟多久。例如,如果输入一个5秒的渐变周期,JMeter将在5秒钟内完成所有用户的启动。所以,如果我们有5个用户和一个5秒钟的Ramp-Up Period值,那么用户启动之间的延迟将是1秒(5个用户/ 5秒= 1个用户每秒)。如果将该值设置为0,则JMeter将立即启动所有用户。

清除循环计数字段标记为 “永远” 的复选框,并在此字段中输入值 10 。这个属性告诉JMeter重复测试的次数。如果输入循环计数值0,那么JMeter将只运行一次测试。如果要让JMeter反复运行测试计划,请勾选 永远 复选框。

重复该过程并添加另一个线程组。对于第二个线程组,在名称字段中输入:Publisher,将线程数设置为1,迭代设置为10。

在大多数应用程序中,您必须手动接受在控制面板中所做的更改。但是,在JMeter中,控制面板自动接受所做的更改。如果更改元素的名称,则在离开当前控制面板后使用新文本更新树(例如,选择另一个树元素时)。

2 增加JMS订阅者和发布者


确保需要的 jar 文件在JMeter的lib目录。如果不是,请关闭JMeter,将jar文件复制到对应的目录并重新启动JMeter。

首先添加 JMS Subscriber取样器到 Subscriber 线程组(添加 → Sampler → JMS Subscriber)。然后选择树中的JMS订阅者元素编辑如下参数:

1.修改名称字段值为:”Sample Subscriber“

2.如果 JMS 提供使用 jndi.properties 文件,则选中该框

3.在Initial Context Factory字段输入InitialContextFactory 类,例如:使用ActiveMQ 5.4,值为 “org.apache.activemq.jndi.ActiveMQInitialContextFactory“

4.在Provider URL字段输入提供程序URL。如果存在的话,是JNDI服务器的URL。例如:在本地机器使用默认端口的ActiveMQ 5.4 ,URL值是”tcp://localhost:61616“

5.在Connection Factory字段输入connection factory的名称。有关信息请参照JMS提供的官方文档。对于ActiveMQ,默认值是”ConnectionFactory“

6.在Destination字段输入消息主题的名称。对于ActiveMQ 动态主题(动态创建主题),示例值为”dynamicTopics/MyStaticTopic1“

备注: Setup 选择At Startup 意味着JMeter 从测试开始监听此字段配置的消息主题而没有更改名称的可能。Setup 选择 Each sample意味着JMeter在每个JMS订阅者采样器运行前重新开始监听,此配置允许Destination字段值是变量。

7.如果JMS提供程序需要身份认证,选择“required”并输入用户名和密码。例如: Orion JMS 需要身份认证,但是ActiveMQ和MQSeries不需要

8.在 Number of samples to aggregate 字段输入 10。通过采集器聚合消息,出于性能方面的考虑,小消息能够更快速的到达 。如果采集器不能聚合消息,JMeter不能够继续运行

9.如果想要读取响应消息,选中Read Response框

10.订阅者有两种客户端实现,如果其中一个客户端选项使得JMS 提供程序产生僵尸进程,则选中另一个

接下来添加 JMSPublisher 取样器到 Publisher 线程组(添加 → Sampler → JMS Publisher)。然后选择树中的JMS发布者元素编辑如下参数:

1.修改名称字段值为:”Sample Publisher“

2.如果JMS 提供使用 jndi.properties 文件,则选中该框

3.在Initial Context Factory字段输入InitialContextFactory 类,例如:使用ActiveMQ 5.4,值为 “org.apache.activemq.jndi.ActiveMQInitialContextFactory“

4.在Provider URL字段输入提供程序URL。如果存在的话,是JNDI服务器的URL。例如:在本地机器使用默认端口的ActiveMQ 5.4 ,URL值是”tcp://localhost:61616“

5.在Connection Factory字段输入connection factory的名称。有关信息请参照JMS提供的官方文档。对于ActiveMQ,默认值是”ConnectionFactory“

6.在Destination字段输入消息主题的名称。对于ActiveMQ 动态主题(动态创建主题),示例值为”dynamicTopics/MyStaticTopic1“

备注: Setup 选择At Startup 意味着JMeter 从测试开始监听此字段配置的消息主题而没有更改名称的可能。Setup 选择 Each sample意味着JMeter在每个JMS发布者采样器运行前重新开始监听,此配置允许Destination字段值是变量。

7.如果JMS提供程序需要身份认证,选择“required”并输入用户名和密码。例如: Orion JMS 需要身份认证,但是ActiveMQ和MQSeries不需要

8.在 Number of samples to aggregate 字段输入 10。通过采集器聚合消息,出于性能方面的考虑,小消息能够更快速的到达 。如果采集器不能聚合消息,JMeter不能够继续运行

9.选择合适的配置生成发布的消息。如果希望随机的选择消息,则将消息放置在目录中,并且 通过浏览选择目录

10.选择消息类型。如果消息是object类型或者映射消息,确保消息正确生成

3 增加测试结果监听器


需要添加到测试计划的最后一个元素是一个 监听器。这个元素负责将所有的HTTP请求结果存储在一个文件中,并呈现数据的可视化模型。

选择 测试计划 元素并添加一个 图形结果监听器(添加  →  监听器  →  图形结果)。接下来,需要指定输出文件的目录和文件名。可以将其输入到文件名字段中,也可以选择浏览按钮并浏览到目录,然后输入文件名。

Jmeter创建一个 JMS 主题的测试计划的更多相关文章

  1. jmeter 建立一个JMS主题测试计划

    创建两个线程组和组 每一个到10迭代. 总消息线程(6)x(1消息) (重复10次)= 60消息. 建立测试计划,您将使用 以下元素: 线程组 , JMS的出版商 , JMS用户 , 图结果 . 一般 ...

  2. Jmeter创建一个点对点的 JMS 测试计划

    创建一个点对点的 JMS 测试计划 确保所需的jar文件位于JMeter lib目录中. 如果没有,关闭JMeter,复制jar文件并重新启动JMeter. 参见详细教程 在本节中,将学习如何创建测试 ...

  3. jmeter 建立一个JMS点对点测试计划

      确保所需的jar文件在JMeter的 自由 目录中. 如果他们不是,关闭JMeter, 重启JMeter复制jar文件. 看到 开始 获取详细信息.   测试的设置是1与5线程发送4 thread ...

  4. jmeter 建立一个网络服务的测试计划

    如何创建一个 测试计划 测试一个网络服务. 你会 创建5个用户发送请求到一页. 同时,你会告诉用户运行测试两次. 的总数 请求用户请求(5)x(1)x(重复2次)= 10 HTTP请求. 来 建立测试 ...

  5. 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等

    转自:http://www.cnblogs.com/qianyiliushang/p/4348584.html 准备工作: 安装JDK,推荐使用1.7以上版本,并设置JAVA_HOME 下载Jmete ...

  6. 转: 使用Jmeter创建ActiveMQ JMS POINT TO POINT请求,环境搭建、请求创建、插件安装、监听服务器资源等

    转自:http://www.cnblogs.com/qianyiliushang/p/4348584.html 准备工作: 安装JDK,推荐使用1.7以上版本,并设置JAVA_HOME 下载Jmete ...

  7. Jmeter创建一个web测试计划

    1.  下载Jmeter 下载地址:http://jmeter.apache.org/download_jmeter.cgi 下载后解压到你想“安装”的路径下,比如: D:\Program Files ...

  8. Jmeter创建一个http请求

    1.点击'Test Plan'为测试计划命名为"创建用户接口" 2.新建一个[线程组],在[创建用户接口]处点击右键,选择[添加]-->[Threads(Users)]--& ...

  9. Jmeter创建一个简单的http接口用例

    1.新建线程组 添加->Threads(Users)->线程组 线程组用来模拟用户进程. 2.添加http信息头管理器 添加->配置元件->http信息头管理器 Systemi ...

随机推荐

  1. (并查集 带关系)Find them, Catch them -- poj -- 1703

    链接: http://poj.org/problem?id=1703 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3676 ...

  2. 试题 D: 数的分解 蓝桥杯

    试题 D: 数的分解本题总分: 10 分[问题描述]把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?注意交换 3 个整数的顺序 ...

  3. java-01 JAVA三大版本比较&JDK、JRE、JVM 的关系

    1. java三大版本比较 1.1 java SE javaSE 是java标准版的简称,其定位是个人计算机应用(应用原生界面比较ugly) 全称:Java Platform Standard Edi ...

  4. WP8.1StoreApp(WP8.1RT)---添加推送功能和获取系统信息

    添加推送通知 1:Package.appxmanifest中的声明添加后台任务的推送通知权限 2:var channel = await PushNotificationChannelManager. ...

  5. Kubernetes 集群安装部署

    etcd集群配置 master节点配置 1.安装kubernetes etcd [root@k8s ~]# yum -y install kubernetes-master etcd 2.配置 etc ...

  6. “全栈2019”Java异常第十七章:Error详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  7. [bzoj4712]洪水 线段树+树链剖分维护动态dp+二分

    Description 小A走到一个山脚下,准备给自己造一个小屋.这时候,小A的朋友(op,又叫管理员)打开了创造模式,然后飞到山顶放了格水.于是小A面前出现了一个瀑布.作为平民的小A只好老实巴交地爬 ...

  8. WEB基础技术(汇聚页)

    WEB基础技术(汇聚页) ------------------------------------------------- WEB WEB概述 HTML CSS JavaScript JavaScr ...

  9. Apache Flume入门指南[翻译自官方文档]

    声明: 根据官方文档选择性的翻译了下,不对请指正 https://flume.apache.org/FlumeUserGuide.html

  10. JavaScript的几种(原型)继承

    定义Foo,Bar 其中,Bar继承Foo a是Bar的实例,包含有Foo和Bar的函数和属性: function Foo(name) { this.name = name; } Foo.protot ...