我想使用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
由于
答案 0 :(得分:0)
您将无法使用JSON Path Extractor,因为响应数据不是有效的JSON ,它看起来像是HTML和JavaScript的混合,因此您需要使用Regular Expression Extractor代替。
相关的正则表达式如下:
"field1": "(.+?)",\s.*"field2": "abc"
参考文献:
答案 1 :(得分:0)
关键是首先使用正则表达式提取有效的json,然后在先前提取的json上应用json路径提取器。
您可以执行两步提取来执行此操作:
"list": ([^^]+}\])
,组$1$
,JMeter variable
对提取的变量执行Json Extractor,然后应用json路径$.list[?(@.field2 == 'abc')].field1
。有用的资源: