jmeter - 如何使用另一个请求的Body Data中的响应中提取的值

时间:2017-02-10 05:12:35

标签: jmeter

我正在尝试在另一个请求的Body Data中使用提取的值。我使用JSON Path Extractor提取值,如下所示

enter image description here

值从以下响应中提取 enter image description here

我在Body数据

中使用它
  {
    "TransactionId": ${transactionId},
    "Cancelled": false
  }

但这不适用于 JMeter ,它将transactionId显示为[“223”]。 我希望它只有223

enter image description here

3 个答案:

答案 0 :(得分:4)

我们可以用不同的方式做到这一点,但我更喜欢使用“Jmeter”功能(最好避免使用插件)。 对于源git link

1. Using "Regular Expression Extractor" post processor.
2. Using "JSON Path PostProcessor" post processor.
  1. “正则表达式提取器”:正则表达式提取器不具备最佳功能。

    Regular Expression: "transactionId":"(.+?)" Template: $1$ Match Number: 1

  2. enter image description here 2.“JSON Path PostProcessor”:我从未使用过这个后处理器,它也很好。下面是表达式

    JSON path Expression : $.transactionId Match Numbers: 1

    enter image description here

    请在“查看结果树”

    中找到调试器采样器中的结果

    enter image description here

答案 1 :(得分:2)

用这个替换你的$..transactionId JSON路径表达式:

$..transactionId[0]

它应删除这些JSON Array括号,您会看到223仅作为${transactionId}变量值

有关使用JSON响应类型的更多提示,请参阅Advanced Usage of the JSON Path Extractor in JMeter文章。

答案 2 :(得分:1)

JMeter 3.1版本中,尝试使用JSON Path expression JSON Extractor(内置)

JSON Path expression: $.transactionId
Match No: 1

给了我265的价值。没有双引号,没有数组符号。

Json提取器截图:

enter image description here

查看结果树截图

enter image description here