我被分配了使用 Apache Jmeter 连接到 MQ 的任务。不幸的是,我不是 MQ 的管理员,我尝试获取更多有关 MQ 的信息却一无所获。我现在拥有的是一个队列名称(称之为 q)、一个队列管理器(无论如何,它的名字;称之为 v)、一个主机(w)、一个端口(x)、一个 channel (y)、一个用户(z) ),以及我应该发送的测试消息。游戏的目标很简单:将测试消息从 Apache Jmeter 发送到 MQ(之后我将询问管理员该消息是否通过)。换句话说,我需要帮助弄清楚如何使用 Jmeter。
MQ 版本为 8.0.0.4。我已经安装了 Jmeter,所以我不需要这方面的建议(除非应该为此任务安装某种特殊的方式)。
this 中提供的链接问题的答案并没有让我走得太远。他们似乎与我想做的事情基本上无关(而且他们的指示也不精确)。
最佳答案
- 下载 8.0.0.4-WS-MQ-Install-Java-All文件
- 像
java -jar 8.0.0.4-WS-MQ-Install-Java-All.jar
一样运行它并接受许可协议(protocol) - 将
wmq/JavaSE/
文件夹中的所有 .jar 添加到 JMeter Classpath - 重新启动 JMeter 以获取 .jar
添加JSR223 Sampler到您的测试计划并将以下代码放入“脚本”区域:
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文章以获取更多信息(如果需要)。
关于java - 使用 Jmeter 连接到 MQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832345/