我需要测试在一个“入站”MQ1上发送的消息的性能,然后(经过一些处理后)在另一个出站MQ2上接收消息。我需要以某种方式生成一个类似于was中的聚合报表侦听器的报告,以显示平均“响应时间”或“处理时间”(即当具有给定唯一ID的消息被放置在入站队列上时和从不同的出站MQ中消耗了具有相同唯一id的不同消息之间的时间)。我认为这属于非同步范畴。
我有一些J抄经验和有限的脚本知识-我希望使用这个工具来解决我的问题,使用线程间通信插件在am。
受这和这文章中的示例和注释的启发,我当前的高级方法是让一个线程组使用带有JSR223代码的JSR223采样器在入站队列中控制消息的插入,而另一个线程组控制来自另一个出站队列的消息的消耗。我已经设置了用于放置和使用消息的脚本,但在实现将信息从一个线程移动到另一个线程以及“有条件地”使用出站队列中的消息时,我遇到了困难,条件是它包含基于第一个线程组生成的变量的唯一消息。如果消息id在4秒内找不到,我想抛出一个断言,并使采样器失败。
在Jmeter中,在Test元素中,我定义了一个"message“变量。在(inter-thread-communication-plugin-in-jmeter).采样器中,我使用vars.put(“消息”,有效负载)在将消息发送到入站队列之前获取消息内容(使用producer.send(msg)),然后在this中使用带有“文本消息”选择的“响应断言”和“不等于”来执行此模式${__fifoPut(input_queue,${ message })},该模式将消息值放入FIFO "input_queue“
现在,一旦我将此消息放入FIFO队列,在消耗出站队列中的消息的第二步中,我需要某种方式在脚本中调用${__fifoPop(input_queue,${ message })} (并且在JSR223示例程序中不起作用),但只有当消息的内容具有我要查找的消息Id,以便将queue1上的第一条消息与来自queue2的消息之一进行映射时。但是,在脚本中,我使用了consumer.receive(1000)方法,它直接使用消息并将其从队列中删除。是否有任何方法可以在不消耗消息的情况下从队列读取消息?
问题摘要:
有人知道我怎么解决这些问题吗?
发布于 2021-09-22 21:19:46
JMS_IBM_PUTDATE
和JMS_IBM_PUTTIME
属性来确定“第一条”消息的时间戳。JMS_IBM_PUTTIME
和当前时间之间的增量。一旦完成,您可以只在您的负载测试报告中包含这个第二个JSR223示例程序。https://stackoverflow.com/questions/69287123
复制相似问题