嘿哈布尔!
这是我的前传
这次我将向您介绍我协调 JMeter 和 IBM MQ 以便在 IBM WAS 上愉快地测试应用程序的经验。 我面临这样的任务,这并不容易。 我想帮助每个感兴趣的人节省时间。
介绍
关于该项目:数据总线、许多 xml 消息、三个交换区域(队列、数据库、文件系统)、具有自己的消息处理逻辑的 Web 服务。 随着项目的进展,手动测试变得越来越困难。 Apache JMeter 应运而生——功能强大且开源,拥有庞大的用户社区和友好的界面。 开箱即用的版本易于定制,让您能够涵盖任何情况,并且首席开发人员承诺提供帮助 如果有的话 (它确实有帮助)最终确认了我的选择。
准备初始上下文
要与队列管理器交互,您需要一个初始上下文。 有好几种类型,这里
要创建它,使用 MQ Explorer 很方便:
图 1:添加初始上下文
选择上下文文件类型和存储目录 .绑定 文件将包含 JNDI 对象的描述:
图 2:选择初始上下文类型
然后你就可以开始创建这些对象了。 从连接工厂开始:
图 3:创建连接工厂
选择一个友好的名字...
图 4:选择连接工厂名称
...然后输入 队列连接工厂:
图 5:选择连接工厂类型
协议 - 消息队列客户端 能够与 MQ 远程交互:
图 6:连接工厂协议选择
在下一步中,您可以选择现有工厂并从中复制更多设置。 点击 下一页,如果没有:
图 7:为现有连接工厂选择设置
在参数选择窗口中,指定三个就足够了。 在选项卡上 连系 : 指示队列管理器和 IP 站的名称及其位置(端口 1414 离开):
图 8:配置连接工厂参数
在选项卡上 通道 — 连接通道。 点击 完成 去完成:
图 9:完成连接工厂创建
现在让我们创建到队列的连接:
图 10:创建目标对象
让我们选择一个友好的名称(我更喜欢指示队列的真实名称)并输入 队列:
图 11:选择目标名称和类型
类似于 图7 您可以从现有队列复制设置。 另请点击 下一页,如果是第一个:
图 12:为现有目标选择设置
在设置窗口中,只需选择管理员的名称和所需的队列,然后单击 完成。 然后重复所需的次数,直到创建了与 JMeter 交互所需的所有队列:
图 13:完成目标创建
准备JMeter
准备 JMeter 涉及添加与 MQ 交互所需的库。 它们位于 %wmq_home%/java/lib 中。 在启动 JMeter 之前将它们复制到 %jmeter_home%/lib/ext。
- com.ibm.mq.commonservices.jar
- com.ibm.mq.headers.jar
- com.ibm.mq.jar
- com.ibm.mq.jmqi.jar
- com.ibm.mq.pcf.jar
- com.ibm.mqjms.jar
- dhbcore.jar
- fscontext.jar
- 文件
- jar文件
- 提供者工具.jar
建议的替代清单
jms.jar出现错误NoClassDEfFoundError,我找到的解决方案
- com.ibm.mq.allclient.jar
- fscontext.jar
- javax.jms-api-2.0.jar
- 提供者工具.jar
这两个库列表都可以成功地与 JMeter 5.0 和 IBM MQ 8.0.0.4 配合使用。
制定测试计划
必要且充分的 JMeter 元素集如下所示:
图 14:测试计划
示例测试计划中有五个变量。 尽管数量很少,但我建议为不同类型的变量创建单独的配置元素。 随着测试的增长,这将使导航变得更加容易。 在这种情况下,我们得到两个列表。 第一个包含用于连接 MQ 的参数(请参阅。 图2 и 图4):
图 15:MQ 连接选项
第二个是引用队列的目标对象的名称:
图 16:参数化队列名称
剩下的就是配置 JMS Publisher 将测试消息加载到传出队列中:
图 17:设置 JMS 发布者
JMS 订阅者从传入队列中读取消息:
图 18:配置 JMS 订阅者
如果一切都正确完成,侦听器中的执行结果将充满明亮欢快的绿色。
结论
我故意省略了路由和管理问题;这些对于单独的出版物来说是相当亲密和广泛的主题。
此外,在使用队列、数据库和文件时存在很大一部分细微差别,我也想单独详细地讨论这些细微差别。
节省您的时间。 感谢您的关注。
来源: habr.com