Ibm mq 有人知道我们如何使用存根以隔离的方式对IBMMQ消息流进行单元测试吗?

Ibm mq 有人知道我们如何使用存根以隔离的方式对IBMMQ消息流进行单元测试吗?,ibm-mq,messagebroker,ibm-integration-bus,Ibm Mq,Messagebroker,Ibm Integration Bus,我是IBM-MQ的新手,试图了解如何对消息流执行单元测试 我知道像CA Lisa这样的工具可以在系统测试级别进行服务虚拟化和测试 但在我的例子中,我正在寻找类似javajunit测试的单元测试框架,在这个框架中,开发人员可以创建测试和所需的存根来独立测试ibmq消息流 提前感谢您。我们针对部署的流编写集成测试。我们使用和Junit作为基础 以下是关于我们测试的一些想法: 对于同步依赖项,我们要么编写在单独的IIB应用程序中部署的模拟流,要么使用JUnit帮助程序来实现和 对于异步依赖项,如IBM

我是IBM-MQ的新手,试图了解如何对消息流执行单元测试

我知道像CA Lisa这样的工具可以在系统测试级别进行服务虚拟化和测试

但在我的例子中,我正在寻找类似javajunit测试的单元测试框架,在这个框架中,开发人员可以创建测试和所需的存根来独立测试ibmq消息流


提前感谢您。

我们针对部署的流编写集成测试。我们使用和Junit作为基础

以下是关于我们测试的一些想法:

对于同步依赖项,我们要么编写在单独的IIB应用程序中部署的模拟流,要么使用JUnit帮助程序来实现和

对于异步依赖项,如IBM MQ,我们在测试中使用或直接使用IBM来发送和接收消息。在每次测试之前,我们用消息清理队列

对于文件节点,我们在真实流和Junit中使用环境变量MQSI_FILENODES_ROOT_DIRECTORY来轻松查找文件。在每次测试开始之前,我们还清理文件输入和输出目录

为了加快单元测试的速度,并测试诸如断言没有消息到达之类的事情,我们在Junit测试中订阅了这些消息。当我们收到事务结束事件时,我们确信流已经完成,并且可以断言文件在那里,特定队列上没有消息,等等


开始使用MQ V9.1.0.0中提供的MQ消息传递REST API,我相信实际上是V9.0.0.4

我过去曾使用过各种解决方法,但如果您只想将消息放到队列中,并将其从队列中删除,然后安装或可以安装MQ 9.1,则可以使用MQ消息传递REST API

发送到…/ibmmq/rest/v1/messaging/qmgr/QMGR1/queue/Q1/message的HTTP POST将把您的消息发送到Q1

HTTP删除…/ibmmq/rest/v1/messaging/qmgr/QMGR1/queue/Q1/message将从Q1获取您的消息

我正在使用Postman来实现这一点,但没有理由不能使用SoapUI或任何其他您最喜欢的测试工具


目前需要注意的一点是,您仅限于发送文本消息,但如果有很高比例的消息是XML、JSON或CSV,那么这很有可能符合您的要求。

非常感谢您的详细解释,Daniel。这有助于我定义我们的测试策略。关于在IBM集成总线的Flow Exerciser中使用JavaAPI进行单元测试有什么想法吗?我开始用IIB9进行集成测试;在IIB10中增加了流动锻炼器。我在IIB10的第一个版本中尝试了它,但它注意到我的测试运行的时间要长得多。因此,我在答案中坚持我的方法。由于IIB10随着时间的推移而成熟,我可以再给它一次机会;谢谢你提起。谢谢你,丹尼尔。很高兴我能帮上忙。如果你对我的回答感到满意,你可以接受。