Jmeter:尝试使用beanshell断言从数据库获取数据时出错
我正在尝试使用BeanShell断言从JBDC请求采样器中提取结果 我在我的采样器中添加了一个beanshell断言来提取结果,但运行时出现了一个错误。 有关守则是:Jmeter:尝试使用beanshell断言从数据库获取数据时出错,jmeter,beanshell,Jmeter,Beanshell,我正在尝试使用BeanShell断言从JBDC请求采样器中提取结果 我在我的采样器中添加了一个beanshell断言来提取结果,但运行时出现了一个错误。 有关守则是: if (!ResponseCode.equals("200") || vars.getObject("dataFromDB").size() == 0) { FailureMessage = "!!!!!!!!!!! No connection to the database or data not received !!!!
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您的代码至少有两个问题:
FailureMessage
定义应该在一行,或者您应该prev.setStopThread(真)代码>应以
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);
}
if (!prev.getResponseCode().equals("200") || vars.getObject("dataFromDB").size() == 0) {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage("!!!!!!!!!!! No connection to the database or data notreceived !!!!!!!!!!!");
}
注意,考虑迁移,所需的代码修改看起来如下:
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);
}
if (!prev.getResponseCode().equals("200") || vars.getObject("dataFromDB").size() == 0) {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage("!!!!!!!!!!! No connection to the database or data notreceived !!!!!!!!!!!");
}
您的代码至少有两个问题:
FailureMessage
定义应该在一行,或者您应该prev.setStopThread(真)代码>应以
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);
}
if (!prev.getResponseCode().equals("200") || vars.getObject("dataFromDB").size() == 0) {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage("!!!!!!!!!!! No connection to the database or data notreceived !!!!!!!!!!!");
}
注意,考虑迁移,所需的代码修改看起来如下:
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);
}
if (!prev.getResponseCode().equals("200") || vars.getObject("dataFromDB").size() == 0) {
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage("!!!!!!!!!!! No connection to the database or data notreceived !!!!!!!!!!!");
}
非常感谢您的回复。我试过上面的方法,发现效果不错!还非常感谢您启发我如何使用Groovy。我是一个初学者,我对此一无所知!非常感谢您的回复。我试过上面的方法,发现效果不错!还非常感谢您启发我如何使用Groovy。我是一个初学者,我对此一无所知!