我试图提取使用豆壳断言从我JBDC请求采样结果
我添加了一个BeanShell的断言我的采样来提取结果,当运行它,我得到了一个错误。有问题的代码是:
if (!ResponseCode.equals("200") || vars.getObject("dataFromDB").size() == 0) {
FailureMessage = "!!!!!!!!!!! No connection to the database or data not
received !!!!!!!!!!!";
Failure = true;
prev.setStopThread(true):
}
凡dataFromDB是我JBDC请求采样的结果变量名
该错误是:断言失败消息:org.apache.jorphan.util.JMeterException:错误调用BSH方法:EVAL
至少有2个问题与您的代码:
FailureMessage
定义应该是在一个线上,否则您应该concatenate 2 strings on 2 linesprev.setStopThread(true);
应与semicolon结束另外:
vars.getObject("dataFromDB")
表达不产生null
假设上述所有建议的修复将如下所示:
try {
if (!ResponseCode.equals("200") || vars.getObject("dataFromDB").size() == 0) {
FailureMessage = "!!!!!!!!!!! No connection to the database or data notreceived !!!!!!!!!!!";
Failure = true;
prev.setStopThread(true);
}
} catch (Exception ex) {
log.error("Script failure", ex);
}
要知道,since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for any form of scripting所以考虑迁移到JSR223 Assertion,所需的代码修改将如下所示:
if (!prev.getResponseCode().equals("200") || vars.getObject("dataFromDB").size() == 0) {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage("!!!!!!!!!!! No connection to the database or data notreceived !!!!!!!!!!!");
}