在Jmeter中我使用的是带有Groovy的JSR223PostProcessor,HTTP响应是一个类似这样的JSON Block:
`function changeGraphicVisibility() {
polygonGraphic.visible = !polygonGraphic.visible;
var spanElement = document.getElementById("visibility");
spanElement.innerHTML = polygonGraphic.visible;
}....`
我有兴趣搜索 - >
{
"A1": 283,
"XYZ": "123@192.168.12.12",
"A3": "",
"A4": {
"A6": 1,
}
}
我可能也可能没有那条线,注意*可以是任何东西 目前我正在这样做,它的工作原理:
"XYZ": "*@*",
但我喜欢更优雅的方式 - >
if (response.contains("@"))
我怎么能在Groovy中做到这一点?
答案 0 :(得分:1)
您可以使用find operator:
def response = prev.responseDataAsString
if ( response =~ /"XYZ":\s*"\d*@.*"/ ) {
println "found it!"
}
答案 1 :(得分:1)
我不认为你需要正则表达式,我宁愿建议使用JsonSlurper而只依赖XYZ
属性存在,相关的Groovy代码将是这样的:
def xyz = new groovy.json.JsonSlurper().parse(prev.getResponseData()).XYZ
if (xyz == null) {
log.info('XYZ string was not found')
}
else {
log.info('XYZ value is: ' + xyz)
}
更多信息: