我在HTTP请求中添加了一个beanshell断言,如果我使用循环计数值1运行脚本,通过在CSV文件中添加1值,该断言将返回正确的结果,但是如果我将循环计数更改为大于1示例:4,然后通过在CSV文件中添加4个值来运行脚本(第一个循环通过从csv文件中选择第一个值来运行测试,第二个循环选择第二个值,依此类推),我发现断言的结果不一致。 / p>
Ex:如果我通过将1st值移到第4行将3个以上的值添加到csv文件中运行测试,则断言将断言正确地显示为“未检查”,如果存在1个循环,则断言将显示第四行与第三行的值相同(尽管第四行的值应该与第三行的值不同)。
这是我正在使用的Beanshell断言:
String Response1 = prev.getResponseDataAsString();
String Response2 = prev.getResponseDataAsString();
String Response3 = prev.getResponseDataAsString();
if(Response1.contains("${accInst}") && Response2.contains("${otherInst}") && Response3.contains("${accInstAvailableNotChecked}")){
Failure=false;
log.info("In Case ID: ${id}, Account Instructions Available is Not Checked");
}
else if(!Response1.contains("${accInst}") || !Response2.contains("${otherInst}") && Response3.contains("${accInstAvailableChecked}")){
Failure=false;
log.info("In Case ID: ${id}, Account Instructions Available is Checked");
}
else{
Failure=true;
FailureMessage="Account Instructions Available is not set correctly in the case.";
log.error("Bean Shell Assertion is FAIL");
}
答案 0 :(得分:0)
vars
的速记方式访问声明代码中的JMeter变量,即使用vars.get("accInst")
而不是"${accInst}"
答案 1 :(得分:0)
谢谢,迪米特里。实际上,我可以通过在正则表达式提取器中将“默认值”添加为“未找到”来解决此问题。另外,我看到了具有不同beanshell断言的相同问题,并且能够通过在Reg Expression Extractor的“ Default Value”字段中添加“ Not Found”来解决此问题。
有人可以解释在reg表达式提取器的“默认值”字段中添加“未找到”的用法。