需要从JMeter响应中提取JSON数据吗?

时间:2014-03-25 06:41:20

标签: json jmeter

在JMeter中,我需要从JSON响应中提取一些字段( City Classification Chain ):

{
  "StoreCode": "111243",
  "StoreName": "Spencer - Sec 14 Gurgaon",
  "Address1": "Gurgaon-Sector-14",
  "Address2": "NCR",
  "Pin": "110000",
  "City": "NCR",
  "Classification": "Vol 4",
  "Chain": "Spencers",
  "Version": "20281",
  "VisitType": "Weekly"
}

可以使用正则表达式提取器完成吗?还有其他选择吗?

3 个答案:

答案 0 :(得分:1)

如果这条JSON是所有响应 - 使用正则表达式提取器是有意义的。

如果您收到更大或更复杂的结构 - 最好使用插件提供的特殊JSON Path Extractor。您的JSON响应的JSON路径表达式类似于$.City$.Chain等。

有关JSON Path语言和如何安装插件的更多详细信息,请参阅Using the XPath Extractor in JMeter指南的“解析JSON”一章。

答案 1 :(得分:0)

提到的插件很容易。例如,请参阅thisHere是插件的链接。

我最了解的是流程。在你的jmeter测试中你需要有一个返回数据的httprequest(在这种情况下是json数据)。因此,如果您有一个View Results Tree监听器,那么在运行测试时,您会在Response Data选项卡中看到json。如果您右键单击HttpRequest,则需要数据。 ADD =>后处理器=> jp @ gc - JSON路径提取器。在该提取器内,您可以将其命名为任何名称。

变量名应该是您已在User Defined Variables配置元素中定义的变量名。 JSON路径将以美元符号开头,然后是一个点,然后是您想要从json获取值的键的名称。所以对我来说:$ .logId来自......“logId”的值:4,...在我的json中。它会将数字4存储在我的userdefined变量中。默认值可以设置为你从未见过的东西,如-1或null或false等......

顺便说一下,你用$ {variablename}在测试中引用你的变量。如果放入json及其字符串,请执行“$ {variablename}”。希望它有所帮助。

答案 2 :(得分:0)

借助正则表达式进行查找的方法很多。分享其中之一。

"City": "(.*)",
"Classification": "(.*)",
"Chain": "(.*)",