首页 > 解决方案 > jmeter中的jsr223后处理器中的条件Json表达式和for循环

问题描述

无法在条件 jsonpath 表达式中使用 groovy 中的变量,能够传递 jmeter 变量,但在脚本中创建的变量不起作用.. 在下面的代码中,如果我在 ${"dat"+n} 处传递值或 jmeter 变量它工作正常,但如果我传递在后处理器中生成的“dat”变量,它会抛出错误..

ArrayList myList = new ArrayList();
ArrayList myList1 = new ArrayList();
for( int i = 1; i<= ${relationshipID_matchNr};i++){
myList.add (Integer.parseInt(vars.get("relationshipID_"+i)));
}
log.info(""+myList);
for( int n = 1; n<= ${relationshipID_matchNr}-1;n++){
String s = myList[n].toString();
vars.put("dat"+n,s);    
myList1.add 
(com.jayway.jsonpath.JsonPath.read(prev.getResponseDataAsString(), '$..[? 
(@.identifier == ${"dat"+n})]..columns.[?(@.type == 
"relationship")].token'));
}

标签: for-loopgroovyjmeter

解决方案


我认为问题在于 $ 字符你必须使用转义字符'\'是 $ 所必需的。请使用'\$'


推荐阅读