Testing JMeter-从CLI运行时不替换属性值

Testing JMeter-从CLI运行时不替换属性值,testing,jmeter,performance-testing,Testing,Jmeter,Performance Testing,我目前正在Mac上使用JMeter 5.1.1,并开发了一个非常简单的JMeter项目,通过命令行测试属性值替换。我的JMeter项目非常简单,有一个虚拟采样器试图打印出以下内容 ${__P(resources.folder)}, ${__P(propertiesfile)} and ${__property(propertiesfile)} 我正在尝试使用命令通过CLI运行此项目 jmeter -n -t TestProj.jmx -l jmeter/TestProjResults.jtl

我目前正在Mac上使用JMeter 5.1.1,并开发了一个非常简单的JMeter项目,通过命令行测试属性值替换。我的JMeter项目非常简单,有一个虚拟采样器试图打印出以下内容

${__P(resources.folder)}, ${__P(propertiesfile)} and ${__property(propertiesfile)}

我正在尝试使用命令通过CLI运行此项目

jmeter -n -t TestProj.jmx -l jmeter/TestProjResults.jtl -j jmeter/TestProj.log -Dresources.folder=/Users/h244955/Coding/bga/spogdashboard/tests/perf -Dpropertiesfile=baforgeperfproperties
这些值没有被替换,我在日志中看到以下内容:

2019-10-22 20:48:09531调试o.a.j.e.u.ValueReplacer:即将替换类型为class org.apache.jmeter.testelement.property.StringProperty:${uu p(resources.folder)} ${P(属性文件)} ${u属性(属性文件)} 2019-10-22 20:48:09533调试o.a.j.t.p.AbstractProperty:未运行版本,返回原始函数字符串 2019-10-22 20:48:09533调试o.a.j.e.u.ValueReplacer:替换结果:${{uu P(resources.folder)} ${P(属性文件)} ${u属性(属性文件)} 2019-10-22 20:48:09534调试o.a.j.e.u.ValueReplacer:即将替换类型为class org.apache.jmeter.testelement.property.StringProperty的属性:用于模拟请求和响应的虚拟采样器 没有实际的网络活动。这有助于调试测试。 2019-10-22 20:48:09534调试o.a.j.e.u.ValueReplacer:替换结果:用于模拟请求和响应的虚拟采样器 没有实际的网络活动。这有助于调试测试。 2019-10-22 20:48:09534调试o.a.j.e.u.ValueReplacer:即将替换类型为class org.apache.jmeter.testelement.property.StringProperty的属性中的内容:${uuu Random(50500)} 2019-10-22 20:48:09534调试o.a.j.t.p.AbstractProperty:未运行版本,返回原始函数字符串 2019-10-22 20:48:09534调试o.a.j.e.u.ValueReplacer:替换结果:${uuuu Random(50500)}

然而,当我在使用JSR223采样器声明相同属性的帮助下从GUI运行此项目时,这些值将按照预期在虚拟采样器中被替换。我试着四处寻找上面突出显示的日志的答案,但没有成功。

您需要使用-
J

 jmeter -n -t TestProj.jmx -Jresources.folder=/Users/h244955/Coding/bga/spogdashboard/tests/perf -Jpropertiesfile=baforgeperfproperties -l jmeter/TestProjResults.jtl -j jmeter/TestProj.log 
-D[prop_name]=[value] 定义java系统属性值。 -J[prop_name]=[value] 定义本地JMeter属性

要添加额外的JMeter属性文件,请使用
-q

-q,--addprop
其他JMeter属性文件
您需要使用-
J

 jmeter -n -t TestProj.jmx -Jresources.folder=/Users/h244955/Coding/bga/spogdashboard/tests/perf -Jpropertiesfile=baforgeperfproperties -l jmeter/TestProjResults.jtl -j jmeter/TestProj.log 
-D[prop_name]=[value] 定义java系统属性值。 -J[prop_name]=[value] 定义本地JMeter属性

要添加额外的JMeter属性文件,请使用
-q

-q,--addprop
其他JMeter属性文件

我无法复制这个问题:

所以我的期望是,您的JMeter安装在某种程度上被破坏了,也就是说,确保该文件存在于JMeter安装的“lib/ext”文件夹中

  • 确保从中获取JMeter,并查看文章以了解详细信息
  • 确保从其“bin”文件夹启动JMeter,以便

    cd /path/where/jmeter/lives/bin 
    ./jmeter -Dpropertiesfile=baforgeperfproperties -n -t test.jmx ....
    
    /jmeter
    位对于确保从当前文件夹而不是MacOS中的其他文件夹启动jmeter非常重要


  • 我无法复制这个问题:

    所以我的期望是,您的JMeter安装在某种程度上被破坏了,也就是说,确保该文件存在于JMeter安装的“lib/ext”文件夹中

  • 确保从中获取JMeter,并查看文章以了解详细信息
  • 确保从其“bin”文件夹启动JMeter,以便

    cd /path/where/jmeter/lives/bin 
    ./jmeter -Dpropertiesfile=baforgeperfproperties -n -t test.jmx ....
    
    /jmeter
    位对于确保从当前文件夹而不是MacOS中的其他文件夹启动jmeter非常重要


  • 谢谢您的回复@Dmitri T。我尝试了您的建议,我能够打印“参数”。但是,当我执行以下操作时,我看到了问题:
    log.info(“===Variable Value:”+${P(foo)})//返回一个错误,因为它搜索变量“bar”。log.info(“==========变量值:”+props.get(“foo”)//返回null
    此外,在“If控制器”中引用系统属性和Jmeter属性的方式是否存在差异?感谢您的回复@Dmitri T。我尝试了您的建议,并且能够打印“参数”。但是,当我执行以下操作时,我看到了问题:
    log.info(“===Variable Value:”+${P(foo)})//返回一个错误,因为它搜索变量“bar”。log.info(“==========变量值:”+props.get(“foo”)//返回null
    另外,在“If Controller”中引用系统属性和Jmeter属性的方式是否存在差异?谢谢您的回复。然而,即使这样尝试,我仍然有问题。也许这就是我对酒店的称呼。我正在JSR223
    log.info(“===Variable Value:”+${P(foo)})中尝试以下操作//返回一个错误,因为它搜索变量“bar”log.info(“==========变量值:“+props.get”(“foo”)//返回null
    @ragz如果您想使用其他属性文件,请使用
    -q baforgeperfproperties
    这些属性是作为系统属性还是Jmeter属性输入的?此外,在类似“if Controller”的情况下,我们如何引用系统属性与Jmeter属性之间是否存在差异?@ragz Jmeter properties,您将获得两个属性,这两个属性与您的回复相同。然而,即使这样尝试,我仍然有问题。也许这就是我对酒店的称呼。我正在JSR223
    log.info(“===Variable Value:”+${P(foo)})中尝试以下操作//返回一个错误,因为它搜索变量“bar”log.info(“==========变量值:“+props.get”(“foo”)//返回null
    @ragz如果您想使用其他属性文件,请使用
    -q baforgeperfproperties
    这些属性是作为系统属性还是作为Jmeter属性输入的?此外,我们在中引用系统属性与Jmeter属性的方式是否有区别