Как написать скрипт BeanShellPostProcessor для сравнения двух значений - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу сравнить два значения и выбрать, какое из них равно второй переменной.Я написал код, как показано ниже в BeanShellPostProcessor

HitID = vars.get("AddPrpc139");
b=139
if(HitID.equals(b))
{
log.info("......value=");
}else
{
    log.info("......value=");
}

Но я получаю ошибку ниже

2018-11-27 14: 48: 53,504 ОШИБКА oajuBeanShellInterpreter: Ошибка при вызове метода bsh: eval В файле: встроенная оценка: `` HitID = vars.get ("AddPrpc139");b = 139 if (HitID.equals (b)) {log.info ("...... val.. '' Обнаружено" if "в строке 4, столбец 1.

2018-11-27 14: 48: 53,504 ПРЕДУПРЕЖДЕНИЕ oajeBeanShellPostProcessor: проблема в скрипте BeanShell: org.apache.jorphan.util.JMeterException: ошибка при вызове метода bsh: eval В файле: встроенная оценка: `` HitID = vars.get ("AddPrpc139"); b = 139 if (HitID.equals (b)) {log.info ("...... val.. '' Обнаружено" if "в строке 4, столбец 1.

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018
  1. Вы должны следовать правилам синтаксиса Java , чтобы добавить точку с запятой после строки b=139.
  2. Вы также должны заключить это 139 в кавычки, иначе JMeter будет сравнивать String с Integer и вы всегда попадете в else ветку дажеесли значения будут одинаковыми

Измененный код:

HitID = vars.get("AddPrpc139");
b = "139";
if (HitID.equals(b)) {
    log.info("Values are equal, expected: " + b + ", got: " + HitID);
} else {
    log.info("Values are NOT equal, expected: " + b + ", got: " + HitID);
}'

Демо:

enter image description here


Имейте в виду, что в соответствии с JMeter Best Practices вы должны использовать JSR223 PostProcessor с языком Groovy, начиная с JMeter 3.1 .Groovy - более современный язык, он совместим с последними функциями Java и имеет гораздо лучшую производительность.Проверьте Apache Groovy - почему и как вы должны его использовать статья для более подробной информации.

0 голосов
/ 27 ноября 2018

Java / Beanshell ожидают ; в конце строки.Также b может быть встроено

 HitID = vars.get("AddPrpc139");
 if("139".equals(HitIDb))
 {

Также рассмотрите возможность перехода на JSR223 PostProcessor

...