我有一个简单的JSON,我想获得两个属性:
core
和matching
并验证core : true
和matching : true
。
{
"lockVersion"
: 1,
"updatedBy" : "jan",
"updatedOn" : "2016-09-25T11:21:45Z",
"id" : 964,
"title" : "Corporate Numeric",
"description" : null,
"descType" : 31084140,
"descValueType" : 31084136,
"defaultSourceOfVerification" : "Source",
"core" : true,
"matching" : true,
"anything" :
[
],
"authorized"
:
[
1
]
}
是否可以使用AND运算符执行此操作,还是必须执行两步操作以提取一组然后再次过滤以获得最终结果? 我将使用jp @ gc - JSON Path Assertion。
答案 0 :(得分:2)
按如下方式配置JSON路径断言:
[?($.core == true && $.matching == true)]
Validate against expected value
框[]
Invert Assertion
框参考文献:
答案 1 :(得分:1)
有关JSON Path Assertion插件,请参阅Dmitri T answer。
因此,使用Core JMeter,你可以使用JSON Extractor和Response Assertion使用范围" JMeter变量"
这样做答案 2 :(得分:-1)
您应该能够使用BeanShell断言和内置的JSON解析器来实现此目的。
import net.minidev.json.parser.JSONParser;
import net.minidev.json.JSONObject;
import net.minidev.json.JSONArray;
try {
// Use JSONParser to parse the JSON
JSONParser parser = new JSONParser(JSONParser.ACCEPT_NON_QUOTE|JSONParser.ACCEPT_SIMPLE_QUOTE);
JSONObject rootObject = (JSONObject) parser.parse(prev.getResponseDataAsString());
if ( rootObject.get("matching") && rootObject.get("core") ) {
Failure=false;
}
else {
Failure=true;
}
}
catch ( Exception ex) {
log.info("Exception.." + ex);
Failure=true;
}