【问题标题】:JMeter : Extract range of values from json responseJMeter:从json响应中提取值范围
【发布时间】:2021-08-24 23:13:46
【问题描述】:

您能否告诉我从 Json 响应下方提取 ItemID 范围并将提取的值存储在以逗号分隔的变量中的有效方法。示例:请求的 JsonResponse。 [ {“ItemID”:“ITM40400002”,“deliveryId”:“1”,},{“ItemID”:“ITM40400003”,“deliveryId”:“2”,},{“ItemID”:“ITM40400004”,“deliveryId” ": "3", } ]

如果我通过范围 [0,1],它应该提取前两项,如下所示。 提取的变量项 = ITM40400002,ITM40400003 我尝试了 $..[0:1].id 匹配号:-1 和计算 concat 复选框已启用。但它返回所有 id

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    您可以使用JSON JMESPath Extractor,示例语法类似于:

    [*].ItemID | [:2] | join(', ', @)
    

    演示:

    [:2] 也可以是JMeter Variable,因此您可以使其动态化。

    更多信息:

    【讨论】:

    • 嗨 Dmitri,我尝试过使用 JSON JMESPath 提取器,但它没有提取变量 Value 中的值(ITM40400002,ITM40400003)。下面是我正在使用的快照。创建变量的名称:Value JMESPath 表达式:[*].ItemID | [:2] | join(', ', @) 匹配号(0 表示随机):尝试使用 -1 或 0 如果我遗漏任何内容,请告诉我。谢谢
    • 尝试切换到JSR223 PostProcessor 并使用以下代码:vars.put('foo', new groovy.json.JsonSlurper().parse(prev.getResponseData()).ItemID[0..1].join(','))。您将能够在需要时将生成的变量称为${foo}。如需更多信息,请参阅 Parsing and producing JSONApache Groovy - Why and How You Should Use It 文章。
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多