(Jmeter 四)JMeter JMS性能测试
来源:互联网 发布:go web编程很费劲 编辑:程序博客网 时间:2024/06/06 02:14
引用http://www.cnblogs.com/qianyiliushang/p/4348584.html?utm_source=tuicool&utm_medium=referral
JMS参考http://blog.csdn.net/jiuqiyuliang/article/details/46701559
MOM 作为消息数据交换的平台,也是影响应用执行效率的潜在环节。在 Java 程序中,是通过 JMS 与 MOM 进行交互的。作为 Java 实现的压力测试工具,JMeter 也能使用 JMS对应用的消息交换和相关的数据处理能力进行测试。这一点应该不难理解,因为在整个测试过程中,JMeter 测试的重点应该是消息的产生者和消费者的本身能力,而不是 MOM本身。
根据 JMS 规范,消息交换有2种方式:发布/订阅和点对点。JMeter针对这两种情形,分别提供了不同的Sampler进行支持。
目的
使用Jmeter测试ActiveMQ的JMS消息
以下MOM我们使用ActiveMQ ,分别描述发布/订阅和点对点这两种消息交换方式是如何使用 JMeter 进行测试。
1. 测试前的准备(两种情况都适用)
- JMeter 虽然能使用 JMS 对 MOM 进行测试,但是它本身并没有提供JMS需要使用的包。下载解压Activemq 将 activemq-all-5.13.3.jar复制至apache-jmeter-2.13\lib目录下(http://activemq.apache.org/download.html)。运行时发现提示如下类冲突的错误,解决方法:用压缩工具打开apche-all-*.jav....staticloggerbinder.class所在目前,将该类重命名。
- JMeter 在测试时使用了 JNDI,为了提供 JNDI 提供者的信息,需要提供 jndi.properties。同时需要将 jndi.properties 放到 JMeter 的 bin下的 ApacheJMeter.jar 打包在一起。执行如下操作,打开命令行窗口,并定位到 JMETER_HOME/bin 目录,运行如下命令 jar uf ApacheJMeter.jar jndi.properties(直接修改ApacheJMeter_core.jar中的jemeter.properties文件,这种方式比较麻烦,涉及重新打包,直接在Jmeter GUI中配置JNDI的属性也可以)
对于 ActiveMQ,jndi.properties 的示例内容如下:
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = tcp://localhost:61616
#指定connectionFactory的jndi名字,多个名字之间可以逗号分隔。
#以下为例:
#对于topic,使用(TopicConnectionFactory)context.lookup("connectionFactry")
#对于queue,(QueueConnectionFactory)context.lookup("connectionFactory")
connectionFactoryNames = connectionFactory
#注册queue,格式:
#queue.[jndiName] = [physicalName]
#使用时:(Queue)context.lookup("jndiName"),此处是MyQueue
queue.MyQueue = example.MyQueue
#注册topic,格式:
# topic.[jndiName] = [physicalName]
#使用时:(Topic)context.lookup("jndiName"),此处是MyTopic
topic.MyTopic = example.MyTopic
2、测试步骤
- 启动ActiveMQ:打开dos窗口,进入ActiveMQ解压目录下的bin目录,输入命令:activemq.bat start
- Tips:在启动ActiveMQ前,修改conf目录下的activemq.xml中的配置
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=65535&wireFormat.maxFrameSize=104857600"/>
上面标记的这个数字为最大连接数,自己设置,如果太小的话会导致发送的请求都被拒绝
- Tips:在启动ActiveMQ前,修改conf目录下的activemq.xml中的配置
- 启动Jmeter
- 添加一个线程组
- 添加Samper:选择JMS POINT TO POINT
- 配置Sampler
- QueueConnection Factory:连接名
- JNDI name Request queue:JNDI请求发送队列名
- JNDI name Recieve queue:JNDI接收队列
- TimeOut:超时时长
- Expiration:过期时间
- Communication style:Request only(只发送请求,如果选择Request Response模式,会验证收到消息的JMS Header中的JMSCorrelationID,以判断是否是对请求消息的响应。需要设置CorrelationId,并且需要服务端调用getReplyTo()方法来监听请求)
- Content:发送消息内容,这里调用Jmeter的函数助手发送512个字符
- Initial Context Factory:org.apache.activemq.jndi.ActiveMQInitialContextFactory(这个在之前从AMQ中拷贝到Jmeter\lib中的jar包里,Jmeter会自动扫描到)
- JNDI Properties,queue.Test.Request和queue.Test.Reply,这里定义前面用到的两个变量
- Provider URL:tcp://localhost:61616,这个是消息服务器的ip和端口,本地
- (Jmeter 四)JMeter JMS性能测试
- JMeter(四)-分布式性能测试
- 使用Jmeter测试JMS
- 使用Jmeter测试JMS
- (Jmeter 三)JMETER+WEBSERVICE性能测试
- Jmeter性能测试(转)
- JMeter之JMS接口测试
- jmeter学习(二)之jmeter+badboy并发性能测试
- JMeter(性能测试工具)
- JMeter性能测试入门
- Jmeter测试性能
- 接口性能测试--JMeter
- 接口性能测试--JMeter
- JMeter性能测试
- 性能测试-Jmeter篇
- Jmeter性能测试 入门
- Jmeter 性能测试?
- 性能测试--Jmeter
- gitlab的用户使用手册
- 浅谈Java中extends和implements
- Android socket编程
- 用Jsoup实现html中标签替换
- 浅谈为什么Java接口中不允许定义变量
- (Jmeter 四)JMeter JMS性能测试
- IP:网际协议
- 一、策略模式--小伟带你学设计模式
- java的若干问题(2)——异常捕获及处理、包及访问控制权限
- android onLongClick 和 onTouch
- perl eval
- git合并分支的步骤
- 练习firstMFC遇到的问题
- GVIM编辑器的配置