2017-03-03 96 views
0

我想根据从HTML页面使用jmeter的条件提取JSON值。根据从HTML页面使用Jmeter的条件提取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路径提取器,如下所示,但返回NULL

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

感谢

回答

0

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

可以执行2步提取做到这一点:通过与"list": ([^^]+}\]),组$1$执行正则表达式提取

  • 首先提取网页中的JSON,
  • 然后执行一个JSON提取通过选择JMeter variable提取变量,然后应用您的json路径$.list[?(@.field2 == 'abc')].field1

有用的资源:

+0

另一个用户在这里选择了相同的解决方案:http://stackoverflow.com/questions/39238561/jmeter-json-parse –

+0

我怎么能执行第二步?如果我在使用regEx的相同HTTP请求下使用json Extractor,那么JSON提取器返回NULL。 – Yugal

+0

必须将json提取器应用于从前一个正则表达式提取器提取的JMeter变量。这是链接它们的唯一方法。 –