jmeter-如何在另一个请求的主体数据中使用从响应中提取的值

jmeter-如何在另一个请求的主体数据中使用从响应中提取的值,jmeter,Jmeter,我试图在另一个请求的正文数据中使用提取的值。我使用JSON路径提取器提取了该值,如下所示 值是从下面的响应中提取的 我在身体数据中这样使用它 { "TransactionId": ${transactionId}, "Cancelled": false } 但这在JMeter中不起作用,它将事务ID显示为[“223”]。 我只希望是223 在wards上的JMeter 3.1版本中,使用JSON提取器(内置)尝试以下JSON路径表达式 给了我265值。不带双引号,不

我试图在另一个请求的正文数据中使用提取的值。我使用JSON路径提取器提取了该值,如下所示

值是从下面的响应中提取的

我在身体数据中这样使用它

  {
    "TransactionId": ${transactionId},
    "Cancelled": false
  }
但这在JMeter中不起作用,它将事务ID显示为[“223”]。 我只希望是223


在wards上的
JMeter 3.1
版本中,使用
JSON提取器(内置)尝试以下
JSON路径表达式

给了我
265
值。不带双引号,不带数组符号

Json提取器屏幕截图:

查看结果树屏幕截图


将您的
$…transactionId
JSON路径表达式替换为以下表达式:

$..transactionId[0]
它应该删除这些括号,您将只看到
223
作为
${transactionId}
变量值


有关使用JSON响应类型的更多提示,请参阅本文。

我们可以用不同的方法来实现,但我更喜欢使用“Jmeter”功能(最好避免使用插件)用于源git

  • “正则表达式提取器”:正则表达式提取器不是最好的功能

    正则表达式:“transactionId”:“(.+?)”
    模板:$1$
    匹配号码:1

  • 2.“JSON路径后处理器”:我从未使用过这个后处理器,它也很好。下面是表达式

    JSON路径表达式:$.transactionId 匹配号码:1

    请在调试器采样器的“查看结果树”中查找结果


    在这种情况下,正文数据中没有传递任何内容,在这两种情况下,正文数据显示为TransactionId:,不,它不会形成第一个api调用响应数据具有“TransactionId:“265”,可能会在下一个api调用“TransactionId”中显示代码:[“265”],您可以分享您最近试用的屏幕截图吗?使用大写字母
    T&I
    。请检查表达式中哪一个最适合。这可能是最新的答案。添加
    Debug Sampler
    并尝试验证
    transactionId
    变量中捕获的值。您可以使用
    jp@gc-JSON路径提取器
    plugin或
    JSON提取器
    builti我想将提取的元素写入文件。JSON的响应是:{“distance”:14.518,“distanceUnit”:“km”,“time”:11.5,“timeUnit”:“min”}在JSON提取器中,我将变量名指定为ResponseTime。在BeanShell后处理器中,我试图以time=vars.get(““响应时间”);但正在变为空。我做错了什么吗?请提出建议
    $..transactionId[0]
    
    1. Using "Regular Expression Extractor" post processor.
    2. Using "JSON Path PostProcessor" post processor.