我正在尝试自动化一些性能测试。我想把服务器位置从Jenkins作业传递到一个通用的jmx中。我希望能够做一些类似这样的事情:测试IP =IP地址并让foo.jmx拾取testingIP。当我运行jmeter命令时,它说变量已经被存储,但是在jmx中插入${testingIP}或${\_\_P(testingIP,)}会导致${testingIP}或${\_\_P(testingIP,)}被解释为一个字符串。我做错了什么/根本没有做什么?这甚至可能吗?
testingIP
${testingIP}
${\_\_P(testingIP,)}
bprjcwpo1#
您需要做的就是从命令行(或shell)使用**-J**选项启动JMeter。
示例:
${__P(TestIP)}
这样就行了。请注意,如果运行脚本时没有传递JMeter属性,则应该放置一个默认值,如下所示:${__P(测试IP,1.1.1.1)}
fivyi3re2#
看一下这个链接http://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/。我也会尝试指定默认值,比如${__P(testingFromCommandLineIP,defaultIP)},其中testingFromCommandLineIP--从命令行运行测试计划时指定的参数,defaultIP--默认值
${__P(testingFromCommandLineIP,defaultIP)}
testingFromCommandLineIP
defaultIP
koaltpgm3#
1.在Jmeter GUI中打开Jmeter文件(jmx),并添加参数,如以下屏幕截图所示:
单击保存按钮。1.现在,使用这些参数运行命令,例如:
jmeter -t TestPlan.jmx -Jthreads=10 -Jcount=50 -Jrumpup=5
92dk7w1h4#
有两个选项可以将参数发送到jmeter。
First:设置系统属性值。
-Dproperty=value
如果value是包含空格的字符串,则必须用双引号将该字符串括起来。
java -Dmydir="some string" -jar ApacheJmeter.jar -n -t PerformanceTest.jmx
正在阅读jsr223 beanshell中的参数:
log.info("mydir:" + System.getProperty("mydir"));
使用Bean Shell函数阅读请求采样器中的参数:
${__BeanShell(System.getProperty("mydir"))}
Second:定义本地JMeter属性
-J[prop_name]=[value]
jmeter -n -t PerformanceTest.jmx -Jmyparamter=4 -Jduration=300
使用Bean Shell函数阅读请求采样器中的属性:
${__P(duration)}
4条答案
按热度按时间bprjcwpo1#
您需要做的就是从命令行(或shell)使用**-J**选项启动JMeter。
在您的脚本中,要获取该值,只需使用函数**_P**:
示例:
这样就行了。
请注意,如果运行脚本时没有传递JMeter属性,则应该放置一个默认值,如下所示:
${__P(测试IP,1.1.1.1)}
fivyi3re2#
看一下这个链接http://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/。我也会尝试指定默认值,比如
${__P(testingFromCommandLineIP,defaultIP)}
,其中testingFromCommandLineIP
--从命令行运行测试计划时指定的参数,defaultIP
--默认值koaltpgm3#
1.在Jmeter GUI中打开Jmeter文件(jmx),并添加参数,如以下屏幕截图所示:
单击保存按钮。
1.现在,使用这些参数运行命令,例如:
92dk7w1h4#
有两个选项可以将参数发送到jmeter。
First:设置系统属性值。
如果value是包含空格的字符串,则必须用双引号将该字符串括起来。
正在阅读jsr223 beanshell中的参数:
使用Bean Shell函数阅读请求采样器中的参数:
Second:定义本地JMeter属性
使用Bean Shell函数阅读请求采样器中的属性: