Variables jmeter将命令行变量传递到jmx中

Variables jmeter将命令行变量传递到jmx中,variables,jmeter,jmx,Variables,Jmeter,Jmx,我正在尝试自动化一些性能测试。我希望将服务器位置从Jenkins作业传递到通用jmx中。我希望能够做到以下几点: jmeter-n-tfoo.jmx-JtestingIP=IP 并让foo.jmx拿起testingIP 正确的方法是什么?当我运行jmeter命令时,它表示变量已经存储,但是在jmx中插入${testingIP}或${\\\\\ P(testingIP,)}将导致${testingIP}或${\\\ P(testingIP,)}被解释为一个字符串 我做错了什么/根本没做什么?这可能

我正在尝试自动化一些性能测试。我希望将服务器位置从Jenkins作业传递到通用jmx中。我希望能够做到以下几点:

jmeter-n-tfoo.jmx-JtestingIP=IP

并让foo.jmx拿起
testingIP

正确的方法是什么?当我运行jmeter命令时,它表示变量已经存储,但是在jmx中插入
${testingIP}
${\\\\\ P(testingIP,)}
将导致
${testingIP}
${\\\ P(testingIP,)}
被解释为一个字符串


我做错了什么/根本没做什么?这可能吗?

看看这个链接。另外,我会尝试指定默认值,比如
${P(testingFromCommandLineIP,defaultIP)}
其中
testingFromCommandLineIP
--从命令行运行测试计划时指定的参数,
defaultIP
--默认值

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

-JTestIP=10.0.0.1

在脚本中,要获取值,只需使用函数\u p

例如:

应该这样做

注意:如果运行脚本时未传递JMeter属性,则应输入默认值,如:

${p(TestIP,1.1.1.1)}

  • 在Jmeter GUI中打开Jmeter文件(jmx),并添加参数,如下屏幕截图所示:
  • 单击保存按钮

  • 现在,使用以下参数运行命令,例如:

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

  • 有两个选项可以将参数发送到jmeter

    首先:设置系统属性值

    -Dproperty=value
    
    如果value是一个包含空格的字符串,则必须用双引号将该字符串括起来

    例如:

    读取jsr223 beanshell中的参数:

    log.info("mydir:" + System.getProperty("mydir"));
    
    使用Bean Shell函数读取请求采样器中的参数:

    ${__BeanShell(System.getProperty("mydir"))}
    
    ${__P(duration)}
    
    Second:定义本地JMeter属性

    -J[prop_name]=[value]
    
    例如:

    正在使用Bean Shell函数读取请求采样器中的属性:

    ${__BeanShell(System.getProperty("mydir"))}
    
    ${__P(duration)}
    

    在jmeter 3.0中工作。非常感谢。这对我有用。我正在使用JMeterJava1.0
    ${__P(duration)}