JMeter 的 JMS 订阅者“JMS 选择器”属性中的有效值用法 - 为了使用动态变化的 JMSCorrelationID 来使用消息

问题描述 投票:0回答:1

我有一个托管一些队列的 Apache ActiveMQ Artemis 服务器。 在 JMeter JMS Publisher 采样器的帮助下,我在队列 1 上发布一组具有某些特定 property1 和 valueX 的消息,并且应用程序向我提供对另一个队列 2 上的那些特定请求消息的响应消息,这些消息在 JMS 的 JMSCorrelationId 属性中具有 valueX消息头。我使用 JMS 订阅者采样器使用响应消息。

如果我只是“盲目”消费消息,而不在 JMS 订阅者采样器中使用 JMS 选择器,我可以在视图结果树(响应数据 -> 响应标头)中看到所消费的消息具有以下示例属性和值:

JMSCorrelationId 20240315165957905

我需要的是仅使用消息头中 JMSCorrelationId 属性中具有特定值(来自 JMeter 变量)的消息。

我不明白需要在 JMS Subscriber 属性中设置什么值,以便仅使用标头中具有特定 JMSCorrelationId 的消息。

我尝试在采样器的 JMS Selector 属性中使用它。

JMSCorrelationID = '${uniqueID}'

JMSCorrelationID = 'ID:${uniqueID}'

由于某种原因,JMS 订阅者采样器无法找到该消息,即使我看到它在队列中(使用 ActiveMQ Artemis 管理控制台)。

此外,我不知道如何调试此 JMS 订阅者采样器在选择器值中使用的静态值,因为我看不到它在 JMeter 日志文件中生成任何日志。

任何形式的见解将不胜感激。

jmeter jms activemq-artemis point-to-point
1个回答
0
投票

尝试在

JMS 订阅者
中选择“设置”下的 Each sample 框:

如果您 将 JMeter 日志记录详细程度提高到调试级别,则可以在 jmeter.log 文件中观察 JMeter 变量的值。

您还可以下载或查看 JMeter 源代码,在您喜欢的 IDE 中打开项目,在 JMSSampler.browseQueueForConclusion() 函数中设置断点,然后查看实际的 JMS Selector 值。

© www.soinside.com 2019 - 2024. All rights reserved.