在JMeter中如何从JMS请求头中提取TransactionID值
JMeter提取JMS请求头TransactionID的操作方法
以下两种方式都可以实现,按需选择即可:
方式1:使用正则表达式提取器(操作门槛更低)
- 右键点击发送JMS请求的采样器,依次选择
添加 → 后置处理器 → 正则表达式提取器 - 按以下参数配置提取器:
- 应用范围:选择
主样本 - 引用名称:自定义变量名,比如
transaction_id,后续用${transaction_id}即可调用提取到的值 - 正则表达式:填
TransactionID\s+([a-f0-9A-F\-]{36}),精准匹配UUID格式的TransactionID取值 - 模板:填
$1$,取第一个正则分组的内容 - 匹配数字:填
1,取第一条匹配结果 - 缺省值:可填
NOT_FOUND,方便排查提取失败的场景
- 应用范围:选择
方式2:使用JSR223后置处理器(灵活性更高,性能更好)
- 右键点击发送JMS请求的采样器,依次选择
添加 → 后置处理器 → JSR223后置处理器 - 语言选择
groovy,在脚本输入框中填入以下代码:
// 从JMS请求头中切割提取TransactionID值 def rawHeaders = prev.getRequestHeaders() def transactionId = rawHeaders.split("TransactionID\\s+")[1].split("\\R")[0].trim() // 将提取结果存入JMeter变量 vars.put("transaction_id", transactionId)
验证方法
可以在JMS采样器后添加一个调试采样器,运行脚本后在「查看结果树」中查看transaction_id变量的取值,确认是否和预期的39594bf1-0410-476c-9cb6-0ce3102ce182一致即可。
内容的提问来源于stack exchange,提问作者user16923013
相关产品推荐
相关产品推荐

