Jmeter передает переменные командной строки в jmx
Я пытаюсь автоматизировать некоторые перфекционные тесты. Я хотел бы передать серверы в общий jmx из задания Jenkins. Я хотел бы иметь возможность сделать что-то вроде:
jmeter -n -t foo.jmx -JtestingIP = IP
и запустите foo.jmx testingIP
.
Каков правильный способ сделать это? Когда я запускаю эту команду jmeter, она говорит, что переменная была сохранена, но вставка в ${testingIP}
или ${\_\_P(testingIP,)}
в jmx приводит к тому, что ${testingIP}
или ${\_\_P(testingIP,)}
интерпретируется как просто строка.
Что я делаю неправильно/вообще не делаю? Возможно ли это?
Ответы
Ответ 1
Все, что вам нужно сделать, - запустить JMeter из командной строки (или оболочки) с помощью параметра -J.
Например:
-JTestIP = 10.0.0.1
И в вашем script, чтобы получить значение, просто используйте функцию _P:
Пример:
${__P(TestIP)}
Это должно сделать это.
Обратите внимание, что вы должны поместить значение по умолчанию, если вы запустите script, не передав это свойство JMeter, например:
${__ Р (TestIP, 1.1.1.1)}
Ответ 2
Взгляните на эту ссылку http://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/. Также я попытался бы указать значение по умолчанию, например ${__P(testingFromCommandLineIP,defaultIP)}
где testingFromCommandLineIP
- аргумент, который вы указываете при запуске плана тестирования из командной строки, defaultIP
- значение по умолчанию
Ответ 3
- Откройте файл Jmeter (jmx) в графическом интерфейсе Jmeter и добавьте параметры в качестве этого снимка экрана:
Нажмите на кнопку Сохранить.
-
Теперь запустите команду с этими параметрами, например:
jmeter -t TestPlan.jmx -Jthreads=10 -Jcount=50 -Jrumpup=5