首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人知道如何使用存根以隔离的方式对IBM MQ消息流进行单元测试吗?

有人知道如何使用存根以隔离的方式对IBM MQ消息流进行单元测试吗?
EN

Stack Overflow用户
提问于 2018-11-09 16:39:44
回答 3查看 4.4K关注 0票数 0

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

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

但在我的例子中,我寻找的是单元测试框架,比如Java Junit测试,开发人员可以在其中创建测试和所需的存根,以便独立测试IBM MQ消息流。

提前谢谢你。

EN

回答 3

Stack Overflow用户

发布于 2018-11-11 00:15:34

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

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

对于同步依赖项,我们要么编写在单独的应用程序中部署的模拟流,要么使用JUnit帮助器来处理诸如SMTP和IBM之类的异步依赖项,我们在测试中使用JmsTemplate或直接使用JUnit MQ classes for JMS来发送和接收消息。在每次测试之前,我们使用messages.

  • For文件节点PCF清理队列,我们在实际流和Junit中使用环境变量MQSI_FILENODES_ROOT_DIRECTORY来轻松地找到文件。我们还在每次测试之前清理文件输入和输出目录,以开始清理。
  • 为了加快单元测试的速度,为了测试诸如断言没有消息到达这样的事情,我们在Junit测试中订阅了Monitoring Events。当我们接收到事务结束事件时,我们确信流已经完成,并且可以断言文件在那里,某个队列上没有消息,等等。
票数 1
EN

Stack Overflow用户

发布于 2021-07-18 16:52:30

在选择测试框架之前,我建议先选择一个好的测试策略。对于IIB消息流,我的建议是对进行集成单元测试。这里

  • “单元测试”意味着对消息流的依赖项(如队列、数据库、HTTP、FTP等)使用存根,而不是测试/QA/Prod。这是将整个消息流(而不是其中的一部分)视为一个单元。这也是为了隔离被测消息流,因为在testing.
  • 'Integration‘期间,存根是100%可控的,意味着多进程,即被测消息流在一个进程中,与消息流交互的存根在其他进程中。这与传统的Java测试不同,在传统的JUnit测试中,“模拟对象”通常与被测的Java方法处于同一进程(JVM)中。

进行集成单元测试的一个关键理由是弃用传统的单元测试(用于消息流)。这是因为

  • 创建传统的单元测试,使被测消息流或部分被测消息流与存根处于同一进程(如JVM)中是很困难的。
  • 从交付过程的角度来看,可能需要进行集成单元测试。许多团队都有消息流的集成设计文档。这些文档描述了消息流如何与其外部依赖项(队列、数据库等)交互,以及消息流内部的数据/消息转换。开发人员和项目经理通常倾向于针对设计文档进行测试,即测试与外部依赖项交互的消息流,以及数据/消息转换。传统的单元测试可能擅长测试数据/消息转换,但似乎不擅长测试外部依赖性interactions.
  • To 避免重复的测试逻辑和工作,集成单元测试似乎是比传统单元测试更好的选择。

要执行集成单元测试策略,可以使用多种风格的测试框架/工具。选择一个框架/工具的因素可能是开源vs商业,高代码vs中代码vs无代码,等等。

下面是一个用于进行集成单元测试的开源无代码工具的示例:https://apitestbase.io/docs/en/iib-integration-unit-testing。免责声明:我是工具开发者。

票数 1
EN

Stack Overflow用户

发布于 2018-12-10 17:23:39

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

我过去常常使用各种变通方法,但是如果您只想将消息放到队列中,并将它们从队列中取出,并安装或可以安装MQ 9.1,那么您可以使用MQ消息传递REST API

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

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

我使用Postman来做这件事,但你没有理由不能使用SoapUI或其他你最喜欢的测试工具。

目前需要注意的是,您只能使用文本消息,但是考虑到XML、JSON或CSV消息所占的比例非常高,这很有可能符合您的要求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53222305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档