#java #string #integer #jmeter #beanshell
#java #строка #целое число #jmeter #beanshell
Вопрос:
Я пытаюсь разобрать строку в целое число в JMeter, но не удалось из-за следующей ошибки. Если я попытаюсь напечатать строки, возвращаемые vars.get, они выглядят хорошо.
2014/06/28 00:08:52 WARN - jmeter.assertions.BeanShellAssertion: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``if (ResponseCode != null amp;amp; ResponseCode.equals ("200") == false ) { int i = In . . . '' : Typed variable declaration : Method Invocation Integer.parseInt
Ниже приведен мой код
if (ResponseCode != null amp;amp; ResponseCode.equals ("200") == false )
{
int i = Integer.parseInt(vars.get("currentPMCount"));
int j = Integer.parseInt(vars.get("pmViolationMaxCount"));
if( i > j ){
log.warn("PM count on server is greater than max allowed count.");
}
log.warn( "The return code is " ResponseCode); // this goes to the JMeter log file
}
else
{
Failure=true ;
FailureMessage = "The response data size was not as expected" ;
}
Ответ №1:
Ваш код выглядит хорошо, однако это может быть проблемой с currentPMCount
переменными и / или pmViolationMaxCount
.
Если они действительно выглядят хорошо и выглядят как целые числа и не превышают максимальных / минимальных значений Integer, вы можете попробовать следующее:
- Убедитесь, что вокруг числового значения нет символов «пробел», так как начальный или конечный пробел приведет к сбою преобразования. Возможно, вызов
trim()
метода для переменной может помочь:int i = Integer.parseInt(vars.get("currentPMCount").trim());
- Если вы сохраните свой скрипт в файл, а затем укажете путь к файлу в утверждении Beanshell, вы получите «проблемный» номер строки
- Мой любимый: окружите свой код в блоке try / catch следующим образом:
try{ //your code here } catch (Exception ex){ log.warn("Error in my script", ex); throw ex; // elsewise JMeter will "swallow" the above exception }
Таким образом, вы получите более информативную трассировку стека вместо паршивого Error invoking bsh method
сообщения, которое ничего не говорит.
Дополнительные советы и рекомендации см. в разделе Как использовать BeanShell: руководство по любимым встроенным компонентам JMeter.
Комментарии:
1. Значение currentPMCount равно нулю из-за неправильного регулярного выражения, но выданное сообщение об ошибке было очень расплывчатым для понимания. Спасибо за помощь.