你如何将JMeter命令行args与Gui args混合使用?

时间:2016-09-01 04:55:13

标签: jmeter

我试图以各种不同的方式运行单个录制而不复制录制的页面。

我创建了两个Property File Readers寻找:

C:\performance\jmeter\users_${__P(ttype)}.properties

C:\performance\jmeter\${__P(env)}_${__P(region)}.properties

其中$ {__ P(xxx)}变量在命令行上传递,如下所示:

-Jregion=UK -Jenv=dev -Jttype=isolated 

这些属性文件加载以下变量(例如):

- usercount=25
- duration=1800
- host.name=server1
- host.port=8546

这些用于HTTP请求默认值:

${__P(host.name)}
${__P(host.port)}

和线程组:

${__P(duration)}
${__P(usercount)}

这很好用。但是,如果我想在Gui中为单个线程运行相同的测试(检查它是否有效),则不会填充这些变量并且测试失败。

我可以创建一个用户自定义变量元素,但这些元素的格式为

${xxx}

所以不能互换使用。

有什么方法可以做我想在这里做的事吗?

2 个答案:

答案 0 :(得分:1)

  • 选项1:您可以通过'-J`参数传递相同的参数,因为JMeter在GUI模式下也会考虑它们
  • 选项2:您可以在 user.properties 文件中指定您的属性值(位于JMeter的“bin”文件夹中),如

    usercount=25
    duration=1800
    etc.
    

通过命令行传递的属性值将覆盖 user.properties

中指定的属性值。

有关使用JMeter属性的更多信息,请参阅Apache JMeter Properties Customization Guide

顺便说一下,你不需要这个属性文件读者,有可能通过-q command line argument.

在JMeter中添加额外的属性文件
  

-q, - addprop

     

其他JMeter属性文件

答案 1 :(得分:0)

发现了解决此问题的另一种方法。

如果未解析第一个值,则__P()函数可以采用第二个参数作为默认值。 所以

${__P(host.name)}
${__P(host.port)}

成为

${__P(host.name,server1)}
${__P(host.port,1234)}

这也有效。