ОТВЕТ НА ВОПРОС
Пожалуйста, дорогой читатель, если хотите, можете продолжить и прочитать вопрос.Но на самом верху я хочу дать ответ Дмитрия, чтобы другие не тратили время на игры с Jmeter If Controller.
Если вы хотите использовать несколько операторов условия в If Controller, особенно если вы хотите проверить, что переменные равны некоторым строкам, НЕ ИСПОЛЬЗУЙТЕ $ {__ javaScript ()} FUNTION !!!Дмитрий предложил вместо этого использовать функцию $ {__ groovy ()}, которая работала в моей ситуации.Правильный синтаксис ниже.Обратите внимание на открывающую скобку, расположение запятой и закрывающие фигурные скобки:
$ {__ groovy ((vars.get ('yourVariable'). Equals ('someString') && vars.get ('yourAnotherVariable'). Equals('someOtherString')),)}
Добавление
Если вы хотите сэкономить свое время при попытке сделать Если контроллер работает с несколькими условиями, всегда снимите флажок Интерпретировать условиекак выражение переменной .В противном случае вам придется придерживаться этих __javaScript, __groovy или других функций, поскольку нет никакого способа понять, как, черт возьми, они предполагают работать и почему они не преобразуются в true или false (файл журнала всегда чист в этой ситуации),Вот как вы обходитесь без помощи этих «функций».Пожалуйста, смотрите мой пример ниже
${yourVariable} != 'not_found' && ${youAnotherVariable_matchNr} == 1
Вот и все, нет необходимости использовать какие-либо функции.
НАЧАЛЬНЫЙ ВОПРОС
В Jmeter v4.0 r 1823414 Я могу использовать Если контроллер только с одним оператором, но не с несколькими.Пример использования нескольких операторов, которые я взял из здесь , и было предложено использовать
$ {__ javaScript ("$ {responsecode}" == "404")} && ${__javaScript ("$ {responseMessage}" == "Not Found")}
Я также проверил страницу учебника Blazemeter , но он ничего не говорит о нескольких условных выражениях внутри Если контроллер .
Пример моего плана тестирования ниже
В моем отладочном сэмплере я вижу следующее
В каком-то месте плана тестирования я поместил IF Controller , чтобы проверить, что обе переменные равны not_found
...
${__javaScript(vars.get('manual_bug')=='not_found')} && ${__javaScript(vars.get('integration_bug')=='not_found')}
... так что все последующие действия выполняются.Однако этот IF Controller либо никогда не выполняется, либо всегда возвращает FALSE.Не уверен, что с ним происходит.
Прежде чем обвинить меня :-) в том, что я не провел достаточно исследований и поспешил задать вопрос по SO, я приведу ниже примеры того, что я уже пробовал, и это не помогло:
С двойными кавычками вокруг переменных
$ {__ javaScript (vars.get ("manual_bug") == "not_found")} && $ {__ javaScript (vars.get (")integra_bug ") ==" not_found ")}
С дополнительным пробелом между знаком равенства
$ {__ javaScript (vars.get ('manual_bug') ==' not_found ')} && $ {__ javaScript (vars.get ('gration_bug') == 'not_found')}
- Избегайте использования vars.get
$ {__ javaScript ($ {manual_bug} == 'not_found')} && $ {__ javaScript ($ {gration_bug} == 'not_found')}
Мой файл журнала выглядит совершенно нормально, без ошибок
Пожалуйста, сообщите, если кто-то смог выполнить несколько условных операторов в инструменте Jmeter?Спасибо!