如何使用jmeter中的正则表达式提取器从多个数组响应数据中检索JSON值?

时间:2016-04-23 09:24:57

标签: json regex jmeter

{
    "response":
    {
        "responseData":
         {
             "createdDate":"2016-04-23 14:39:35",
             "modifiedDate":"2016-04-23 14:39:35",
             "catalogID":1009
         }
    }
}

以下是供参考的示例JSON数据。我需要提取catalogID=1009的值。如何提取catalogID的值?任何人都可以分享你的想法???

检索catalogID的正则表达式是什么?

3 个答案:

答案 0 :(得分:2)

使用以下正则表达式提取器配置:

  • 参考名称:您选择的变量名称,即catalogID
  • 正则表达式:"catalogID":(\d+)
  • 模板:$1$

在必要时将提取的值称为${catalogID}

几点提示:

  1. 您可以在RegExp Tester模式下使用View Results Tree侦听器来测试正则表达式与实际响应:

    Regexp Tester

    有关详细信息,请参阅How to debug your Apache JMeter script文章。

  2. 通过JSON Path Extractor可以JMeter Plugins,它允许使用JSON Path语言(当涉及JSON时比正则表达式更方便),例如获取“catalogID”的相关查询将就像这样简单:

    $..catalogID[0]
    

    还有一个在线JSON Path Expression Tester

答案 1 :(得分:0)

如果要使用正则表达式,请使用

"catalogID":(.+?)

"catalogID":(\d+) <-- For only digits

你也可以为jmeter安装插件JSONPath并使用它来代替

$.response[0].responseData[0].catalogID

更多 info

答案 2 :(得分:0)

我找到了这个问题的解决方案。

在这里你要提取整数值意味着然后使用这个requalar表达式,如"catalogID":(.*?),

字符串表示"catalogID":"(.*?)",

让我们做吧!