我正在使用JSON提取器来解析响应,但有时响应在给定索引中返回一个空值,那时我想确保我们移动到另一个索引以获得正确的值。
例如我的JSON路径表达式是
===
当应用程序在0索引中返回一个空值时,那时我得到了JSON提取器中提到的默认值,而不是我想要的是每当我的脚本返回0索引的空白值时,脚本应该搜索下一个索引中的值即1.因此,当$ .CM [0] .id无法获得该值时,应用程序应搜索$ .CM [1] .id并获得响应。
我的方法应该是什么?我应该使用某种bean shell脚本还是应该尝试使用if controller?
答案 0 :(得分:1)
我建议您切换为JSR223 PostProcessor和Groovy语言。
将以下代码放入"脚本"面积:
def ids = new groovy.json.JsonSlurper().parse(prev.getResponseData()).CM.ID
ids.eachWithIndex { id, i ->
log.info('Trying id: ' + i)
if (id.size() > 0) {
log.info('Found non-empty ID: ' + id)
vars.put('ID', id)
return true
}
}
上述代码会将非空ID值(如果有)放入ID
JMeter变量,您可以将提取的值引用为${ID}
或${__V(ID)}
如果需要。
参考文献: