2013-11-06 4 views
21

Я пытаюсь автоматизировать некоторые перфекционные тесты. Я хотел бы передать серверы в общий jmx из задания Jenkins. Я хотел бы быть в состоянии сделать что-то вроде:jmeter передает переменные командной строки в jmx

JMeter -n -t foo.jmx -JtestingIP = IP

и имеют foo.jmx забрать testingIP.

Каков правильный способ сделать это? Когда я запускаю эту команду jmeter, она говорит, что переменная хранилась, но вставляя либо ${testingIP}, либо ${\_\_P(testingIP,)} в результаты jmx в ${testingIP} или ${\_\_P(testingIP,)}, чтобы интерпретироваться как просто строка.

Что я делаю неправильно/вообще не делаю? Возможно ли это?

ответ

10

Посмотрите на эту ссылку http://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/. Кроме того, я хотел бы попробовать указать значение по умолчанию, как ${__P(testingFromCommandLineIP,defaultIP)} где testingFromCommandLineIP - аргумент указывается при выполнении плана тестирования из командной строки, defaultIP - значение по умолчанию

39

Все, что вам нужно сделать, это начать JMeter из командной строки (или оболочка) с опцией -J. Например:

-JTestIP = 10.0.0.1

И в сценарии, чтобы получить значение, просто использовать функции _P:

Пример:

${__P(TestIP)} 

Это должно сделать это.

Примечание вы должны поставить значение по умолчанию в случае, если вы запустите скрипт без прохождения JMeter, что свойство, как:

$ {__ P (TestIP, 1.1.1.1)}

+0

Не работает в JMeter 2.13 – okwap

+1

Работы в jmeter 3.0. Спасибо! –

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