如何在 Jmeter 中使用 JMS 点对点采样器将消息发送到 IBM MQ 队列
How can JMS Point-to-Point Sampler be used in Jmeter to send messages to an IBM MQ queue
我有一个本地 IBM MQ 实例设置了一些默认队列。
使用 JMeter 5.4.1,我首先想将消息发送到这些队列之一以测试连接是否有效。
1.是否可以与 IBM MQ 一起使用,还是只能与 Active MQ 一起使用?
我想实现的测试场景是这样的:
- JMeter 将 ID1 的一些消息发送到名为“DEV.QUEUE.1”的队列中
- 被测系统从“DEV.QUEUE.1”获取消息,进行一些处理并将响应置于“DEV.QUEUE.2”
- JMeter 检查并断言已在 X 秒内在名为“DEV.QUEUE.2”的队列上收到 ID1 消息的响应
- 在汇总报告中查看结果
2。这可以通过 JMS 点对点采样器实现吗?
我已经查看了官方 JMeter 文档,但我不明白我需要在采样器的每个配置字段中放置哪些连接详细信息。
JMS Resources
QueueConnection Factory:
JNDI name Request queue:
JNDI name Receive queue:
Number of samples to aggregate
JMS Selector
....
etc...
我能够连接到一个队列并使用 JSR223 采样器中的自定义代码发送消息。
这些是我用来创建连接的连接详细信息:
def hostName = "127.0.0.1"
def hostPort = 1414
def channelName = "DEV.APP.SVRCONN"
def queueManagerName = "QM1"
def queueName = "DEV.QUEUE.1"
def ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER)
def cf = ff.createConnectionFactory()
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, hostName)
cf.setIntProperty(WMQConstants.WMQ_PORT, hostPort)
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, channelName)
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT)
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, queueManagerName)
def connInboundQueue = cf.createConnection("mquser", "secretpassword")
def sessInboundQueue = connInboundQueue.createSession(false, Session.AUTO_ACKNOWLEDGE)
def destinationInboundQueue = sessInboundQueue.createQueue(queueName)
connInboundQueue.start()
我猜我可以将这些连接凭据映射到这个 JMS 点对点采样器,这样我就可以实现相同的连接,我只是不知道怎么做。
所以总结一下:
1a。如何使用 JMS 点对点采样器连接到我的两个队列?
2a。如何为我上面描述的场景配置 JMS 点对点采样器?
如有任何帮助,我将不胜感激。
我认为目前不可能,选项在:
- 使用mqmeter - MQ JMeter Extension, it will provide a custom Java Request采样器
- 继续 JSR223 测试元素,示例生产者和消费者代码片段可以在 IBM MQ testing with JMeter - Learn How 文章
中找到
我有一个本地 IBM MQ 实例设置了一些默认队列。
使用 JMeter 5.4.1,我首先想将消息发送到这些队列之一以测试连接是否有效。
1.是否可以与 IBM MQ 一起使用,还是只能与 Active MQ 一起使用?
我想实现的测试场景是这样的:
- JMeter 将 ID1 的一些消息发送到名为“DEV.QUEUE.1”的队列中
- 被测系统从“DEV.QUEUE.1”获取消息,进行一些处理并将响应置于“DEV.QUEUE.2”
- JMeter 检查并断言已在 X 秒内在名为“DEV.QUEUE.2”的队列上收到 ID1 消息的响应
- 在汇总报告中查看结果
2。这可以通过 JMS 点对点采样器实现吗?
我已经查看了官方 JMeter 文档,但我不明白我需要在采样器的每个配置字段中放置哪些连接详细信息。
JMS Resources
QueueConnection Factory:
JNDI name Request queue:
JNDI name Receive queue:
Number of samples to aggregate
JMS Selector
....
etc...
def hostName = "127.0.0.1"
def hostPort = 1414
def channelName = "DEV.APP.SVRCONN"
def queueManagerName = "QM1"
def queueName = "DEV.QUEUE.1"
def ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER)
def cf = ff.createConnectionFactory()
cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, hostName)
cf.setIntProperty(WMQConstants.WMQ_PORT, hostPort)
cf.setStringProperty(WMQConstants.WMQ_CHANNEL, channelName)
cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT)
cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, queueManagerName)
def connInboundQueue = cf.createConnection("mquser", "secretpassword")
def sessInboundQueue = connInboundQueue.createSession(false, Session.AUTO_ACKNOWLEDGE)
def destinationInboundQueue = sessInboundQueue.createQueue(queueName)
connInboundQueue.start()
我猜我可以将这些连接凭据映射到这个 JMS 点对点采样器,这样我就可以实现相同的连接,我只是不知道怎么做。
所以总结一下:
1a。如何使用 JMS 点对点采样器连接到我的两个队列?
2a。如何为我上面描述的场景配置 JMS 点对点采样器?
如有任何帮助,我将不胜感激。
我认为目前不可能,选项在:
- 使用mqmeter - MQ JMeter Extension, it will provide a custom Java Request采样器
- 继续 JSR223 测试元素,示例生产者和消费者代码片段可以在 IBM MQ testing with JMeter - Learn How 文章 中找到