Подтвердить что ты не робот

JMeter "если контроллер" с параметрами?

Я читал JMeter documentation и наткнулся на это информационное окно о "If Controllers":

Никакие переменные не доступны для script, когда условие интерпретируется как Javascript. Если вам нужен доступ к таким переменным, выберите "Интерпретировать условие как выражение переменной"? и используйте вызов функции __javaScript(). Затем вы можете использовать объекты "vars", "log", "ctx" и т.д. В script.

Я не совсем понимаю это. Означает ли это, что если я хочу получить доступ к "Пользовательскому параметру", то я могу получить к нему доступ только путем написания JavaScript? Пример, следующий за этим полем, затем ссылается на "$ {COUNT}"

Может ли кто-нибудь прояснить использование контроллера If, может быть, с примером или двумя?

4b9b3361

Ответ 1

Вы можете просто использовать что-то вроде

${my_variable}=='1'

Иногда документация JMeter может сбивать с толку:)

Изменить 27 сентября 2017 года:

Ответ здесь работает, но имеет очень плохую производительность, когда число потоков превышает 40.

Ниже приведен правильный и наиболее эффективный ответ:

См:

Ответ 2

Все эти ответы неверны! Вам нужно поставить ссылку на переменные в кавычки, например:

"${my_variable}"=="foo"

Ответ 3

НЕОБХОДИМО ПРОВЕРИТЬ ПРОВЕРКУ "Интерпретировать условие как переменное выражение"

Я потратил пару часов, не сняв флажок. Он работал с и без точки с запятой (;) в конце инструкции. Перед вызовом контроллера if вы должны установить пользовательские переменные.

Все следующие вариации работали для меня в Джакарте Jmeter 1.5

  • ${__ JavaScript ( "$ {} HOMEPAGE" == "Y" )}
  • ${__ JavaScript ( "$ {} HOMEPAGE" == "Y" )};
  • "$ {} HOMEPAGE" == "Y"
  • "$ {} HOMEPAGE" == "Y";

Ответ 4

Бог благословит http://habrahabr.ru Попробовали, пока не нашли их. enter image description here

Использование кавычек было моим решением.

Ответ 5

Если контроллер будет внутренне использовать javascript для оценки условия, но это может привести к снижению производительности.

Лучшим вариантом (по умолчанию, начиная с JMeter 4, см. Https://bz.apache.org/bugzilla/show_bug.cgi?id=61675), является проверка " интерпретировать условие как выражение переменной? ", А затем в поле условия есть 2 варианта:

  • Вариант 1. Используйте переменную, которая содержит истину или ложь. Например, если вы хотите проверить, был ли последний образец успешным, вы можете использовать

$ {JMeterThread.last_sample_ok}

If Controller starting with JMeter 3.4

или любая переменная, которую вы хотите, которая содержит истину/ложь

$ {MYVAR}

  • Вариант 2: Используйте функцию (рекомендуется $ { __jexl3()}) для вычисления выражения, которое должно возвращать true или false. Например, если COUNT равен 1:

$ {__ jexl3 ("$ {COUNT}" == "1",)}

ИЛИ ЖЕ

$ {__ jexl3 ($ {COUNT} == 1,)}

If Controller with expression starting with JMeter 3.4

Начиная с 4.0, если вы не используете "интерпретировать условие как выражение переменной?", Появится предупреждение в КРАСНОМ:

If Controller using javascript in JMeter 3.4

Если вы хотите узнать больше о JMeter и тестировании производительности, эта книга может вам помочь.

Ответ 6

Как сказал Джерри, вам нужно проверить свою переменную

${my_var} == 'value'

Но будьте осторожны с Пользовательскими переменными '

Обратите внимание, что все элементы UDV в план тестирования - независимо от того, где они находятся - обрабатываются в начале.

В основном это означает, что вы не можете определить "Пользовательские переменные" внутри "Контроля If". Посмотрите на "BeanShell".

Ответ 7

Заменить: $ {My_variable} == '1' с "$ {my_variable}" == "1"

Ответ 8

Check the image

Я использовал ${code_g1}== 200 в состоянии, и это сработало для меня.