Jmeter: ошибка при попытке получить данные из базы данных, используя утверждение бобов - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь извлечь результаты из моего сэмплера JBDC Request, используя утверждение оболочки Bean

Я добавил утверждение бобовой оболочки в свой сэмплер, чтобы извлечь результаты, и во время его работы я получил ошибку.Код, о котором идет речь:

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

1 Ответ

0 голосов
/ 11 февраля 2019

Есть как минимум 2 проблемы с вашим кодом:

  1. FailureMessage определение должно быть в одной строке или объединить 2 строки в 2 строки
  2. prev.setStopThread(true); должен заканчиваться точкой с запятой

Дополнительно:

Убедитесь, что ваше выражение vars.getObject("dataFromDB") не выдает null Окружите ваш код в Попробуйте блок , так что если что-то пойдет не так - вы увидите соответствующее сообщение в jmeter.log file

Если предположить, что все вышеперечисленные исправления будут выглядеть следующим образом:

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);
}

Имейте в виду, что начиная с JMeter 3.1 рекомендуется использовать элементы тестирования JSR223 и язык Groovy для любых сценариев , поэтому рассмотрите возможность перехода на утверждение JSR223 , необходимые изменения кода будут выглядеть следующим образом:

if (!prev.getResponseCode().equals("200") || vars.getObject("dataFromDB").size() == 0) {
    AssertionResult.setFailure(true);
    AssertionResult.setFailureMessage("!!!!!!!!!!! No connection to the database or data notreceived !!!!!!!!!!!");
} 
...