jmeter将命令行变量传递到jmx

pjngdqdw  于 2021-08-13  发布在  其他
关注(0)|答案(4)|浏览(175)

我正在尝试自动化一些性能测试。我想把服务器位置从Jenkins作业传递到一个通用的jmx中。我希望能够做一些类似这样的事情:
测试IP =IP地址
并让foo.jmx拾取testingIP
当我运行jmeter命令时,它说变量已经被存储,但是在jmx中插入${testingIP}${\_\_P(testingIP,)}会导致${testingIP}${\_\_P(testingIP,)}被解释为一个字符串。
我做错了什么/根本没有做什么?这甚至可能吗?

bprjcwpo

bprjcwpo1#

您需要做的就是从命令行(或shell)使用**-J**选项启动JMeter。

  • 测试IP =10.0.0.1
    在您的脚本中,要获取该值,只需使用函数**_P**:
  • http://jmeter.apache.org/usermanual/functions.html#__P

示例:

${__P(TestIP)}

这样就行了。
请注意,如果运行脚本时没有传递JMeter属性,则应该放置一个默认值,如下所示:
${__P(测试IP,1.1.1.1)}

fivyi3re

fivyi3re2#

看一下这个链接http://mkbansal.wordpress.com/2012/08/01/jmeter-command-line-script-execution-with-arguments/。我也会尝试指定默认值,比如${__P(testingFromCommandLineIP,defaultIP)},其中testingFromCommandLineIP--从命令行运行测试计划时指定的参数,defaultIP--默认值

koaltpgm

koaltpgm3#

1.在Jmeter GUI中打开Jmeter文件(jmx),并添加参数,如以下屏幕截图所示:


单击保存按钮。
1.现在,使用这些参数运行命令,例如:

jmeter -t TestPlan.jmx -Jthreads=10 -Jcount=50 -Jrumpup=5
92dk7w1h

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)}

相关问题