[英]Need to set JMS_IBM_LAST_MSG_IN_GROUP property to true for IBM MQ testing using JMeter
[英]How can I measure the response (processing) times of a SuT using JMS Point-to-Point messaging model through IBM MQ?
我有一个设置了 2 个队列的远程 IBM MQ 实例。 在它们后面是一个被测系统,它总是接收放在 INBOUND.QUEUE 上的消息,做一些处理并将响应消息放在“OUTBOUND.QUEUE”上。
我想测试这个 SuT 的响应时间。 为了实现这一点,我需要设置这个场景:
在 JMeter 中,我有一个与本文中描述的设置非常相似的设置,使用带有常规代码的 JSR223 测试元素与 IBM MQ 队列进行交互 - 如果我的理解是正确的,则通过JMS 。 与文章的不同之处在于,为了使用出站队列中的消息,我有另一个 setUp 线程组,它为我使用消息的“OUTBOUND.QUEUE”设置了另一个连接,另一个tearDown 线程组关闭了这个连接在末尾。
到目前为止它可以工作,但它盲目地消耗消息,我需要确保我正在读取(消耗)每个初始消息的响应延续,以便我可以计算每个完整请求 - 响应流的 SuT 的响应或处理时间. 我知道我可以为此目的使用JMS 关联 ID ,但我不知道如何使用。
我可以使用什么方法在消息创建和消费时获取此关联 ID?
我是否需要一些数据结构来在消息创建时放置所有关联 ID,以便我可以放置一个条件,例如 IF msg.getStringProperty("JMS_CorreationID") is IN 生成的 id 列表,将其从该数据结构中删除,然后获取JMS_IBM_PUTTIME 属性来确定“第一条”消息的时间戳,然后最终计算当前时间和第一条消息的时间之间的时间戳增量?
一旦我这样做了,我如何通过SampleResult类实例在第二个线程组中配置 JSR223 采样器(消费者),以便它报告的不是它自己的执行时间,而是 JMS_IBM_PUTTIME 和当前时间之间的增量(这将代表处理时间)?
最后,一旦完成,我如何才能将第二个 JSR223 采样器(消费者)包含在负载测试报告中?
这个逻辑是否正确/太复杂? 任何帮助或一些代码示例将不胜感激。
通常你应该在一个帖子中只问一个问题,我认为没有人愿意写一本书来回答你的所有问题(并且免费为你做你的工作)
props
简写prev.elapsedTime = 123456
,将123456
替换为具有给定相关 ID 的发送和接收消息之间的实际增量SampleResult.setIgnore()
函数,这样您调用此函数的 JSR223 Sampler 既不会显示在 Listeners 中,也不会显示在 .jtl 结果文件中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.