使用 Jmeter 连接到 MQ

Connecting to an MQ with Jmeter

我被分配了使用 Apache Jmeter 连接到 MQ 的任务。不幸的是,我不是 MQ 的管理员,我试图获取有关它的更多信息的所有尝试都无济于事。我现在拥有的是一个队列名称(称它为 q)、一个队列管理器(它的名称,无论如何;称它为 v)、一个主机(w)、一个端口(x)、一个通道(y)、一个用户(z ), 以及我应该发送的测试消息。游戏的目标很简单:将测试消息从 Apache Jmeter 发送到 MQ(之后我会询问管理员消息是否通过)。换句话说,我需要帮助弄清楚如何使用 Jmeter。

MQ 版本为 8.0.0.4。我已经安装了 Jmeter,所以我不需要这方面的建议(除非有一些特殊的方法应该为此任务安装它)。

this 问题的答案中提供的链接并没有让我走得太远。他们似乎在很大程度上与我试图做的事情无关(而且他们的指示也不准确)。

  1. 下载 8.0.0.4-WS-MQ-Install-Java-All 文件
  2. 运行 喜欢 java -jar 8.0.0.4-WS-MQ-Install-Java-All.jar 并接受许可协议
  3. wmq/JavaSE/ 文件夹中的所有 .jars 添加到 JMeter Classpath
  4. 重新启动 JMeter 以拾取 .jars
  5. JSR223 Sampler 添加到您的测试计划并将以下代码放入 "Script" 区域:

    import com.ibm.msg.client.jms.JmsFactoryFactory
    import com.ibm.msg.client.wmq.WMQConstants
    
    import javax.jms.Session
    
    // 1
    def hostName = "127.0.0.1"
    def hostPort = 1414
    def channelName = "DEV.APP.SVRCONN"
    def queueManagerName = "QM1"
    def queueName = "DEV.QUEUE.1"
    
    // 2
    def ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER)
    def cf = ff.createConnectionFactory()
    
    // 3
    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)
    
    // 4
    def conn = cf.createConnection("app", "")
    def sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE)
    
    // 5
    def destination = sess.createQueue(queueName)
    
    conn.start()
    

如有需要,请参阅 IBM MQ testing with JMeter - Learn How 文章了解更多信息。