JMeter之JMS接口测试

    JMeter中的JMS Point-to Point、JMS Publisher和JMS Subscriber分别用于发送JMS的PTP消息和PUB/SUB消息,可以选择使用JMeter来测试JMS。

  MOM(消息中间件)作为消息数据交换的平台,也是影响应用执行效率的潜在环节。在Java程序中,是通过JMS与MOM进行交互的。作为Java实现的性能测试工具JMeter也能使用JMS对应用的消息交换和相关的数据处理能力进行测试。在整个测试过程中,JMeter测试的重点是消息的产生者和消费者的能力,而不是MOM本身。JMeter虽然能使用JMS对MOM进行测试,但是它本身并没有提供JMS需要使用的包(实现类)。因此在使用JMeter测试JMS时需要使用到具体的MOM的相关jar包。以下结合流行的开源消息中间件ActiveMQ来演示如何使用JMeter来实现对JMS的测试。

1、安装并启动ActiveMQ服务

2、测试前的准备

  使用JMeter进行压力测试时,所有的JMeter依赖的包需要复制到%JMETER_HOME%/lib目录下。对于ActiveMQ来说,就是复制%ACTIVEMQ_HOME%/lib目录下jar包。JMeter在测试时使用了JNDI,为了提供JNDI提供者的信息,需要提供jndi.properties。同时需要将jndi.properties放到JMeter的%JMETER_HOME%/lib和%JMETER_HOME%/bin目录中,还需要将jndi.properties与%JMETER_HOME%/bin目录下的ApacheJMeter.jar打包在一起。对于ActiveMQ,jndi.properties的演示内容如下:

 1 #java.naming.factory.initial = org.activemq.jndi.ActiveMQInitialContextFactory2 java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory3 java.naming.provider.url = tcp://localhost:616164 5 #指定connectionFactory的jndi名字,多个名字之间可以逗号分隔。6 #以下为例:7 #对于topic,使用(TopicConnectionFactory)context.lookup("connectionFactry")8 #对于queue,(QueueConnectionFactory)context.lookup("connectionFactory")9 connectionFactoryNames = connectionFactory
10 
11 #注册queue,格式:
12 #queue.[jndiName] = [physicalName]
13 #使用时:(Queue)context.lookup("jndiName"),此处是MyQueue
14 queue.MyQueue = example.MyQueue
15 
16 #注册topic,格式:
17 # topic.[jndiName] = [physicalName]
18 #使用时:(Topic)context.lookup("jndiName"),此处是MyTopic
19 topic.MyTopic = example.MyTopic

 

3、测试JMS的PTP模型

    对于点对点模型,JMeter只提供了一种Sampler:JMS Point-to-Point。如图所示建立测试计划:

     

 

  QueueConnection Factory:连接工厂,输入jndi配置文件中配置的connectionFactory
  JNDI name Request queue:请求队列名,输入jndi配置文件中配置的MyQueue
  JNDI name Receive queue:接收队列名,输入jndi配置文件中配置的MyQueue
  Content:消息内容,比如输入:this is a test
  Initial Context Factory:输入org.apache.activemq.jndi.ActiveMQInitialContextFactory
  Provider URL:提供者URL,即安装的ActiveMQ的服务地址tcp://yourIP:61616
  运行调试时通过监视器元件查看是否发送成功,如下说明发送成功:

     

 

4、测试JMS的PUB/SUB模型

  在实际测试时,发布者和订阅者并不是需要同时(异步)出现的。比如有时我们可能想测试单位时间内消息发布者的消息产生量,此时就不需要消息发布者,只需要订阅者就可以了。本例为了说明这两种Sampler的使用,建立两个JMeter实例分别用于发送和接收消息。

1)首先新建如下订阅者的测试计划:

    

  勾选使用jndi配置文件,并分别输入jndi中配置的连接工厂和目的地名称,如上图所示,点击运行下的启动,使用消息消费者处于接收状态。

2)然后新建如下发布者的测试计划:

    

 

  勾选使用jndi配置文件,并分别输入jndi中配置的连接工厂和目的地名称以及要发送的消息内容,此处为:this is a pubish test,如上图所示,点击运行下的启动,以发送消息,查看监视器元件检查消息是否发送成功,如下说明发送成功:

    

  检查消息消费者是否接收到消息,如下说明接收成功:

  

  

  上面即完成了JMeter对JMS的基本测试演示。

 

转载于:https://www.cnblogs.com/yezhaohui/p/5026434.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/289699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何节约数据中心空间

节约数据中心内的空间可以带来诸多的好处: 节约空间意味着可以节省开支。在减少了所使用的空间的同时,还可以减少所需的电源、用水、照明和冷却,这便可以节省支出。 在对空间的消耗进行控制同时,也能确保具有充足的空间来满足未来…

ctf镜子里面的世界_帮大爷干活,他送了我一只鞋子和一手套,又不能穿拿来做什么?哈哈哈|叶子|镜子|虫子|鞋子|棺材...

“帮大爷干活,他送了我一只鞋子和一手套,又不能穿拿来做什么?”怎么看感觉这都不像是普通的鞋和手套,总感觉好像这位大爷瞒着你什么事儿,一般家里的老人都有几件传家宝,说不定这东西是真的不懂,…

AutoRest - 具有 C# 和 Razor 模板的 Swagger 规范代码生成器。

简介AutoRest工具生成用于访问 RESTful Web 服务的客户端库。AutoRest是使用OpenAPI 规范格式描述 REST API 的规范。AutoRest 是一个提供代码生成框架的工具,用于将 OpenAPI 2.0 和 3.0 规范转换为客户端库,用于这些规范所描述的服务。它是在 OpenAPI I…

博客之所有文章目录

文章管理Android之本进程ContentProvider启动流程分析 2018-06-27 22:02:00 Android之通过ContentProvider实现两个app(进程间)间通信以及函数调用 2018-06-26 21:19:37 shell之用command在终端判断是否存在这个命令 2018-06-23 22:53:25 shell之通过if [ $? ! 0 ]判断上次…

java内存四大区,jvm基础-内存区域

1.运行时数据区java虚拟机在执行java程序的过程中会爸它所管理的内存分为若干个不同的数据区域jvm内存主要分为堆、程序计数器、方法区、虚拟机栈喝本地方法栈,直接内存等。java方法的运行和虚拟机栈虚拟机栈是线程运行java方法所需要的数据,指令&#x…

oracle的环境配置-基本配置

宿主机IP地址:10.1.1.x 网关:10.1.1.1虚拟机节点IP地址(本地workstation上创建):10.1.1.101~253 网关:10.1.1.1教师机(VNC):10.1.1.250教学生产库IP:10.1.3…

Koa -- 基于 Node.js 平台的下一代 web 开发框架

http://koa.bootcss.com/ 多研究点 react 和 nodejs 这个是未来转载于:https://www.cnblogs.com/smght/p/5029668.html

企业如何用CRM软件客户管理自动化优化流程?

假如企业需要利用CRM软件来对自己的客户实施一系列的管理维护流程,那么客户服务自动化是个必选的功能流程,如果没有服务自动化流程,那么CRM软件就成了一个普通客户资料信息管理工具,只能被用于储存调用客户的相关信息,…

【ArcGIS遇上Python】ArcGIS Python实现批量化矢量和栅格数据重命名

在ArcGIS中,要为矢量数据或栅格数据重命名,需要到ArcCatalog中进行,但是只能一个个重命名。ArcGIS中也提供了矢量、栅格数据的重命名工具:【重命名】,如下图所示: 双击运行该工具,可以看到,更改数据集的名称。这包括各种数据类型,其中包括要素数据集、栅格、表 和 sha…

电脑测速软件_网速慢,怎么办,教你测速,教你解决方案

网速慢、网页慢、视频卡、游戏卡,如何判断自己的宽带速率是否有问题,本期我们来讨论下,如何正确测试网速,信道干扰、2.4G与5G信号、IPTV测速。一、电脑测速受到无线环境影响,无线性能瓶颈等多方面原因,电脑…

IOS之学习笔记一

1、cocoa框架包含Foundation、Application Kit(Appkit) 2、autoreleasepool{ *** } autoreleasepool自动释放池,在里面的代码会自动释放内存,不会内存泄漏 3、objective-c 2.0引入ARC(自动引用计数)机制和自动释放池,降低内存管理难度 4、NSL…

Xamarin效果第十六篇之GIS添加Mark

在前面几篇文章中简单玩耍了一下在线和离线加载高德地图图层;今天再次完善一下添加Mark图层和展示详细信息弹窗;来看看最终效果:添加Mark无非就是用了PictureMarkerSymbol:PictureMarkerSymbol picMarkSymbol await GetPictureMarker(); MapPoint mapPoint new MapPoint(foot…

php smarty 序号,php – Smarty缩进和代码格式

我可以用Smarty制作一个好看的HTML吗?我的意思是如果我采用这种模式(它不是一个有效的代码,只是一个例子):{{assign var"i" value"0"}}{{assign var"tab" value"0"}}{{foreach from$contact.comments itemcomme…

Android规范发展

一、Android 编码规范 1.java 代码中不出现中文。最多凝视中能够出现中文 2.局部变量命名、静态成员变量命名 仅仅能包括字母,单词首字母出第一个外,都为大写,其它字母都为小写 3.常量命名 仅仅能包括字母和_,字母所有大写&#x…

js input 自动换行_矿用自动灭火装置水基型自动灭火装置原理国内分析研讨_搜狐汽车...

山 东潍坊九通消防科技(九通长胜)是国内最早针对矿用车辆发动机舱自动灭火的要求研发设计的超细干粉、水基型自动灭火装置是当下国内解决矿用车辆(地表车辆、井下车辆)灭火的非常好的技术,目前在掘进机、凿岩台车、皮卡、吉普车、轻卡、巨无霸、电传动汽车、露天矿山…

关于WannaCry勒索病毒 你需要知道的8个问题

近日来,WannaCry勒索病毒席卷全球,超过150个国家至少30万名用户中招,造成损失达80亿美元(约合人民币550亿元)。 目前,多名网络安全专家指出,目前病毒事态只是由于多种原因而稍显缓和,但许多网络用户特别是中…

IOS之学习笔记二(块)

1、逗号表达式,返回整个逗号表达式的返回值是最后一个表达式的返回值,长见识了,第一次听说,比如 int x (a 3, a 4, a 5, a 6);NSLog("x is %d", x);x is 6 2、iOS 有如下三种随机数方法: 1)…

C# ReaderWriterLockSlim类

为了使锁定机制允许锁定多个读取器(而不是一个写入器)访问某个资源,可以使用 ReaderWriterLockSlim 类。这个类提供了一个锁定功能,如果没有写入器锁定资源,就允许多个读取器访问资源,但只能有一个写入器锁定该资源。ReaderWriter…

LOG4NET用法

log 4net组件下载:log4net.dll web.config配置如下&#xff1a; <?xml version"1.0" encoding"utf-8" ?> <configuration><configSections><section name"log4net" type"log4net.Config.Log4NetConfigurationSectio…

C# dataGridView控件实用属性及事件总结

一、属性 1.控制时间字段只显示“年-月-日”:dataGridView1.Columns[10].DefaultCellStyle.Format = "yyyy-MM-dd"; 2.背景颜色:dataGridView1.BackgroundColor = Color.Red; 3.列宽随内容自动调整:dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColu…