jmeter性能压测-需要将消息先发送到mq,再由其他服务消费mq中的消息场景
需要将消息先发送到mq,再由其他服务消费mq中的消息场景,一般用于异步处理
压测方法:jmeter发送消息到mq,对应服务消费mq中的消息
前期准备:
1.通过jmeter将消息发送至mq需要将下载的apache-activemq-5.5.0根目录下的activemq-all-5.5.0.jar拷贝到\apache-jmeter-3.0\lib下即可(jmeter的lib目录下)
2.在\apache-jmeter-3.0\bin目录下的ApacheJMeter.jar里增加jndi.properties文件,里面队列名和主题名,模板如下:
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = tcp://172.20.6.23:61653
对于指定connectionFactory的jndi名字,多个名字之间可以逗号分隔。
1.对于topic,使用(TopicConnectionFactory)context.lookup("connectionFactry")
2.对于queue,(QueueConnectionFactory)context.lookup("connectionFactory")
connectionFactoryNames = ConnectionFactory
对于注册queue的格式如下:
模板:queue.[jndiName] = [physicalName]
使用时:(Queue)context.lookup("jndiName"),此处是example.MyQueue
queue.MyQueue = example.MyQueue
对于注册topic的格式如下(订阅发布模式):
模板:opic.[jndiName] = [physicalName]
使用时:(Topic)context.lookup("jndiName"),此处是MyTopic
topic.MyTopic = MyTopic
jmeter脚本
线程组->添加->Sampler->JMS Point-to-Point
注释:
1.上面的配置与jndi.properties中配置参数填写一致
2.最后一行Provider Url = jndi.properties配置文件中的java.naming.provider.url(mq链接地址)
3.content中填写此次需要的请求消息体
以上,就可以向mq发送消息了
//JNDI Properties
上述内容在不填写JNDI Properties就可以执行,如果请求mq的地址有变化,可以直接在JNDI Properties中填写修改后的对应配置参数(名称;值)
效果同jndi.properties