JMeter的Xpath的提取JSON(Jmeter Xpath Extractor JSON)

2019-10-20 05:10发布

我试图从以下JSON使用JMeter XPATH提取参数roomNo:

*/
{   
"categoryCode": ["I4"],
"Response": {
    "class": "example",
    "availables": {
        "available": [
            {
                "Desc": " Middle",
                "roomNo": "5049"
            },
            {
                "Desc": " Middle",
                "roomNo": "5062"
            }
            ],
        "class": "test"
    },
    "advisoryInfo": null
},
"storeId": "10251"
}
*/

我用下面的表达没有成功:

/Response/availables/available[0]/roomNo

为表达错了吗?


更新:

我是尝试使用JSON插件PATH EXTRATCTOR。 我tryied没有成功以下查询:

$...available[0]

$.Response.availables.available..roomNo[0]

$.Response.availables.available[0].roomNo

UPDATE1:

一个多考虑:我收到Ajax响应开始与* /,这可能这将创建烦恼与JSON EXTRACTOR? 我看透视图结果树的响应


UPDATE2:我尝试以下方法:

Ajax请求,然后bash的提取,其次是JSON提取,但它仍然没有工作

在bash提取我没有如使用下列字符串建议字符串临时=新字符串(prev.getResponseDataAsString()); prev.setResponseData(temp.replaceAll( “\ * /”, “”)的getBytes());

一些问题:

是有可能看到的bash提取的结果呢? 我应该它应该使用临时变量JSON提取之前申报的吗? 怎么样?

Answer 1:

我怕的XPath提取一定不会让你解析JSON。

你需要JSONPath提取通过使用JMeter的插件 (你需要额外用利布斯集 )。

在你的情况相关JSONPath查询将如下所示:

$.Response.availables.available..roomNo[0]

看看在JMeter的使用XPath提取指南(向下滚动到解析JSON)以获取更多的信息和XPath来JSONPath映射表。

希望这可以帮助。

UPD。 你可以使用BeanShell的后置处理器摆脱你的*/位,在这种情况下JSONPath应该正常工作。 BeanShell的PostProcessor中的代码:

String temp = new String(prev.getResponseDataAsString());
prev.setResponseData(temp.replaceAll("\\*/","").getBytes());

确保BeanShell的后置处理器JSONPath提取之前去。



文章来源: Jmeter Xpath Extractor JSON