2016-12-27 6 views
0

Я не могу найти способ инициализации переменной int как свойство (глобальный) только один раз, когда начинается мой тест. Мой план тестирования имеет несколько потоков, несколько итераций цикла, и я хотел бы использовать переменную внутри моего скрипта beanshell, но прежде всего, я хочу, чтобы она имела определенное значение, а затем пусть петли и потоки определяют ее по мере необходимости. Я пробовал настройку UDV, но не повезло. Кроме того, я хотел бы, чтобы он был глобальным (как свойство, для нескольких групп потоков), но не смог найти способ для него.JMeter только когда инициализируется только глобальная переменная

ответ

1

Любая причина не использовать собственность вместо этого? Например, вы можете добавить следующую строку в user.properties файл

foo=100 

или передать его в JMeter через -J аргумент командной строки, как:

jmeter -Jfoo=100 -n -t yourscript.jmx 

После этого вы можете использовать значение в 3-х направлениях:

  1. __P() Используя функцию, где это требуется:

    ${__P(foo,)} 
    
  2. преобразовать его в глобальную переменную с помощью User Defined Variables конфигурации элемента

    User Defined Variables - property to variable

  3. Когда дело доходит до Beanshell - использовать props стенографии вместо vars

    int foo = Integer.parseInt(props.get("foo")); 
    

Свойства JMeter являются глобальными для целого J VM к ним можно получить доступ из нескольких групп Thread. См. Apache JMeter Properties Customization Guide для получения дополнительной информации о свойствах JMeter и способах их настройки и переопределения.

+0

Предполагая, что я добавлю его в файл свойств, можно было бы изменить его значение через тест (после инициализации в свойстве)? – Testerone

+0

Конечно, вы можете сделать это через Beanshell или [__setProperty()] (https://www.blazemeter.com/blog/knit-one-pearl-two-how-use-variables-different-thread-groups) функцию , –

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