Jmeter JSON PATH后处理器

时间:2017-06-08 09:44:44

标签: json jmeter

我的JSON响应代码为

<script type="text/javascript" id="RequestScript">
var contextpath = 'https://example.com/';
var JSONObject = null;
var XMLString ='';
var pswitchprofiles = new Object();

pswitchprofiles.WLDATAObject =
{
:   switchprofile:
:   {
:   :   totalRows:5,
:   :   moreRows:false,
:   :   rows:
:   :   [
:   :   :   {
:   :   :   :   id:'1f04b8c7788f47eaba507cd1f01bafd6',
:   :   :   :   ex:'N',
:   :   :   :   name:'Mahindra'
:   :   :   },
:   :   :   {
:   :   :   :   id:'a316419bf71f402cbc3a7af746d80626',
:   :   :   :   ex:'N',
:   :   :   :   name:'Toyota'
:   :   :   },
:   :   :   {
:   :   :   :   id:'1b8f642c00c6469cad1f73829d1b88df',
:   :   :   :   ex:'N',
:   :   :   :   name:'Renault'
:   :   :   },
:   :   :   {
:   :   :   :   id:'df989db921f84dfcac2fb1d4e72c18a3',
:   :   :   :   ex:'N',
:   :   :   :   name:'Huyndai'
:   :   :   },
:   :   :   {
:   :   :   :   id:'43B014C9BF0C1516E0530100007F2995',
:   :   :   :   ex:'N',
:   :   :   :   name:'Skoda'
:   :   :   }
:   :   ]
:   }
}
;
</script>

我正在尝试获取相应名称的ID。 在JSON PATH后处理器中,如果我在JSON路径表达式中给出$ .switchprofile.rows [?(@。name ==&#39; Renault&#39;)]。id,我无法获得正确的id。

请帮我搞定。此外,我不确定该响应是否实际上是JSON。 我正在使用jmeter 3.0

2 个答案:

答案 0 :(得分:0)

您的回复不是JSON,因此您无法使用JSON Path PostProcessor,您需要切换到Regular Expression Extractor。

相关的正则表达式如下:

id:'(\w+)',\s.*,\s.*name:'Renault'

演示:

JMeter Regular Expression

参考文献:

答案 1 :(得分:0)

当我使用带有表达式 id:'(\ w *)'的正则表达式extactor时,例如:'N',名称:'雷诺'我能够正确获取我的身份。

感谢@Dmitri的帮助。