使用Jmeter从HTML页面根据条件提取JSON值

时间:2017-03-03 07:52:09

标签: jmeter

我想使用jmeter从HTML页面中根据条件提取JSON值。

<!doctype html>
var list_data_obj = [{
   "list": [
     {
       "field1": "123",
       "field2": "xyz"
     },
     {
       "field1": "456",
       "field2": "abc"
     },
     {
       "field1": "789",
       "field2": "asdf"
     }
   ],
       "other1": "qwerty",
       "other2": "asdfgh"
 }]
</html>

尝试过如下JSON Path Extractor但返回NULL

$.list[?(@.field2 == 'abc')].field1

由于

2 个答案:

答案 0 :(得分:0)

您将无法使用JSON Path Extractor,因为响应数据不是有效的JSON ,它看起来像是HTML和JavaScript的混合,因此您需要使用Regular Expression Extractor代替。

相关的正则表达式如下:

"field1": "(.+?)",\s.*"field2": "abc"

JMeter Regular Expression Extractor

参考文献:

答案 1 :(得分:0)

关键是首先使用正则表达式提取有效的json,然后在先前提取的json上应用json路径提取器。

您可以执行两步提取来执行此操作:

  • 首先通过执行带有"list": ([^^]+}\]),组$1$
  • 的正则表达式提取器从页面中提取Json
  • 然后选择JMeter variable对提取的变量执行Json Extractor,然后应用json路径$.list[?(@.field2 == 'abc')].field1

有用的资源: