2015-11-13 2 views
1

Я работаю над некоторыми планами тестирования JMeter, в которых используются утверждения BeanShell. В рамках этих утверждений я хочу использовать некоторые свойства пользователя. Существует несколько способов доступа к ним:Каковы плюсы и минусы использования JMeterUtils.getProperty против __P в JMeter?

JMeterUtils.getProperty("propertyName") 
${__P(propertyName) 
props.get("propertyName") 

В чем разница и каковы плюсы и минусы каждого варианта? Являются ли они оберткой друг друга или у них есть определенная функциональность?

Спасибо!

ответ

1

Функционально они все точно такие же. Они даже реализованы одинаково - все они называют метод getProperty() на текущем объекте свойств jmeter.

Разница заключается в том, где вы их используете.

  1. ${} нотация используется при вводе переменных в текстовых полях JMeter GUI. Например, в полях сэмплера HTTP. обратите внимание, что __P является сокращением, и точно так же, как и __Property

  2. props.get() используется в Beanshell скриптов, без необходимости явно импортировать JMeterUtils. Вы можете также комбинировать 1 & 2 сделать ${__BeanShell(props.get())}

  3. Если импортировать JMeterUtils в BeanShell, или вы разрабатываете пользовательский класс Java, то вы будете использовать JMeterUtils.getProperty().

Из трех, я думаю, # 1 является наиболее эффективным, поскольку он не требует создания экземпляра и оценки BeanShell

1

Для Beanshell чувствовать себя свободно использовать любой подход вам нравится.

Для языка JSR223 Test Elements и Groovy, который рекомендуется использовать для выполнения сценариев в вашем тесте JMeter - избегайте ссылаться на переменные и функции JMeter с помощью $ {this way}, поскольку это предотвращает компиляцию скрипта и вызывает накладные расходы на выполнение. См. Статью Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!, чтобы получить более подробное объяснение, различные подходы к тестированию сценариев и лучшие примеры использования сценариев.

Смежные вопросы