我有一个设置了一些默认队列的本地 IBM MQ 实例。
使用 JMeter 5.4.1,我首先想将消息发送到这些队列之一以测试连接是否有效。
1. IBM MQ 是否可行,还是仅适用于 Active MQ?
我希望实现的测试场景是这样的:
- JMeter 将一些 ID 为 1 的消息发送到名为“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 点对点采样器?
我将不胜感激任何帮助。