Jmeter:尝试使用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 !!!!

我正在尝试使用BeanShell断言从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

您的代码至少有两个问题:

  • 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。我是一个初学者,我对此一无所知!