Как можно использовать JMS Point-to-Point Sampler в Jmeter для отправки сообщений в очередь IBM MQ

У меня есть локальный экземпляр IBM MQ, настроенный с некоторыми очередями по умолчанию.

Используя JMeter 5.4.1, я сначала хочу отправить сообщения в одну из этих очередей, чтобы проверить, работает ли соединение.

1. Возможно ли это с IBM MQ или работает только с Active MQ?

Тестовый сценарий, которого я хочу достичь, таков:

  • JMeter отправляет какое-то сообщение с ID1 в очередь с именем "DEV.QUEUE.1"
  • Тестируемая система принимает сообщение от «DEV.QUEUE.1», выполняет некоторую обработку и помещает ответ в «DEV.QUEUE.2».
  • JMeter проверяет и утверждает, что ответ был получен на сообщение с ID1 в очереди с именем «DEV.QUEUE.2» в течение X секунд.
  • Просмотр результатов в сводном отчете

2. Возможно ли это с помощью JMS Point-to-Point Sampler?

Я проверил официальную документацию 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 Point-to-Point Sampler, чтобы получить такое же подключение, я просто не знаю, как.

Итак, подведем итоги:

1а. Как я могу подключиться к двум моим очередям с помощью JMS Point-to-Point Sampler?

2а. Как можно настроить JMS Point-to-Point Sampler для описанного выше сценария?

Буду признателен за любую помощь.

1 ответ

Решение

Я не думаю, что в настоящее время это возможно, варианты есть в:

  1. Используйте mqmeter - MQ JMeter Extension, оно предоставит настраиваемый сэмплер Java Request
  2. Перейдите к элементам тестирования JSR223, примеры фрагментов кода производителя и потребителя можно найти в разделе «Тестирование статья« IBM MQ с JMeter -Узнайте, как »
Другие вопросы по тегам