You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMS发布者与订阅者采样器端到端响应时间映射问题求助

实现JMS端到端响应时间统计方案

核心思路

靠JMSCorrelationID关联发送和接收的消息,结合时间戳记录计算从发消息到收消息的总耗时,具体操作如下:

1. 配置JMS Publisher

  • 发送消息前,用JMeter的${__UUID()}生成唯一关联ID,存到变量${correlationId};同时用${__time(,)}记录发送时间,存到${sendTime}。
  • 在JMS Publisher的「JMS Properties」中添加一条属性:
    • 名称:JMSCorrelationID
    • 值:${correlationId}
      确保发送的消息带上唯一标识。

2. 配置JMS Subscriber

  • 在JMS Subscriber的「Selector」字段填写:JMSCorrelationID = '${correlationId}',这样订阅器只会拉取和当前发送消息匹配的结果,避免收到队列中无关消息。
  • 收到消息后,用${__time(,)}记录接收时间${receiveTime},再通过${__longSum(${receiveTime}, -${sendTime}, responseTime)}计算耗时,${responseTime}就是你需要的端到端响应时间。

3. 关键注意事项

  • 中间处理器转发消息时,必须保留原消息的JMSCorrelationID,如果处理器重发时丢失该属性,订阅器将无法匹配到对应消息。
  • 给订阅器设置合理的超时时间,比如在「Timeout」字段填入合适的毫秒数,避免因无响应消息导致无限等待。
  • 若不确定变量是否正确传递,可添加Debug Sampler查看correlationId、sendTime等变量值是否正常生成。

4. 常见问题排查

  • 订阅器收不到消息:检查Selector语法,字符串类型的关联ID必须加单引号;同时确认中间处理器是否同步转发了JMSCorrelationID。
  • 时间计算异常:确保sendTime和receiveTime均通过${__time(,)}获取毫秒级时间戳,避免使用非统一格式的时间值。

内容的提问来源于stack exchange,提问作者user4021949

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 08:10:27