Ошибка вызова метода bsh: eval Утверждение Beanshell для 2 переменных? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь сравнить результаты 2 запросов JDBC, используя утверждение бобов.Я вижу, что переменные заменяются фактическими значениями.Я не понимаю, почему я получаю эту ошибку, сохраняя ее в локальной переменной и сравнивая?

Я могу получить текст из метода vars.get, но думаю, что он не сохраняетсяв новую локальную переменную (var1 & var2), следовательно, получая исключение нулевого указателя.

2019-05-07 14:00:26,574 ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: ``try{   String var1 = vars.get("02H"); String var2 = vars.get("02H");  System.out . . . '' : TargetError
2019-05-07 14:00:26,574 WARN o.a.j.a.BeanShellAssertion: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``try{   String var1 = vars.get("02H"); String var2 = vars.get("02H");  System.out . . . '' : TargetError

java.lang.NullPointerException: Null Pointer in Method Invocation
at bsh.Name.invokeMethod(Name.java:838) [bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.BSHMethodInvocation.eval(BSHMethodInvocation.java:69) [bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:96) [bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:41) [bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.BSHUnaryExpression.eval(BSHUnaryExpression.java:53) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.BSHAssignment.eval(BSHAssignment.java:71) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.BSHBlock.evalBlock(BSHBlock.java:125) [bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]

Код:

try{

String var1 = vars.get("${ISSTEMP_1}");
String var2 = vars.get("${TMUTEMP_1}");


Failure = !var1.equals(var2);

if (Failure) {
    FailureMessage = "Variables are not equal. Expected \"" + var1 + "\" , actual:\"" + var2 + "\"";
}
}
catch (Throwable e) {
log.error("error in bean shell", e);
throw e;
}

После сохранения значений впеременные, я пытаюсь сравнить и проверить на наличие сбоев.

Failure = !var1.equals(var2);

Где я иду не так?ТИА

1 Ответ

0 голосов
/ 08 мая 2019

Проверьте следующий код: -

try
{

String var1 = vars.get("ISSTEMP_1");
log.info ("var1++++++++++"+var1);
String var2 = vars.get("TMUTEMP_1");
log.info ("var1++++++++++"+var2);

//Failure = !var1.equals(var2);

if (!var1.equals(var2)) {
    log.info("Variables are not equal as Expected");
}
}
catch (Exception ex) {
    log.info("Error in beanshell", ex);
    throw ex;
}

Выход enter image description here Измените log.info на log.error

Надеюсь, это поможет.

...