在jmeter中加载属性文件,然后将属性值分配给JMeter变量

时间:2018-04-25 11:01:16

标签: jmeter

我有条件需要加载属性文件并将prop值赋给JMeter UDV。

我已经能够成功加载属性文件,但我无法将支持值分配给UDV

我尝试了以下内容:

  1. 加载道具文件包含键值(即var_from_prop_file=1000
  2. 创建UDV(键名为“my.var”,值为“${var_from_prop_file}”)
  3. 使用调试采样器运行调试脚本,我可以看到var_from_prop_file已分配给值1000

    然而my.var仍为空(无值)。 我在使用my.var = ${var_from_prop_file}创建UDV时的期望,my.var值也是1000,但这里不会发生。

    我尝试使用__eval和_ _evalVar - 到目前为止没有运气。

    是否可以将jmeter变量引用到属性文件键? 并在其他地方调用变量?

    到目前为止,调试采样器 - 看起来像jmeter首先加载UDV,然后jmeter属性不是那种方式。

2 个答案:

答案 0 :(得分:3)

将JMeter属性批量转换为JMeter变量的最快方法是使用JSR223 Sampler和以下代码:

SampleResult.setIgnore()

props.entrySet().each {entry ->
    vars.putObject(entry.getKey(),entry.getValue())
}

其中:

  • SampleResult.setIgnore() - 从侦听器和.jtl结果文件中删除JSR223 Sampler
  • props - JMeter属性的简写(基本上是java.util.Properties的实例)
  • vars - JMeterVariables class
  • 实例的简写

答案 1 :(得分:2)

您尝试获取所有变量,您需要使用不同的functions获取属性:

  

属性与变量不同。变量是线程的本地变量;属性对所有线程都是通用的,需要使用__P或__property函数进行引用。

在您的情况下,使用以下值设置my.var

${__P(var_from_prop_file)}

或者

${__property(var_from_prop_file)}

类似的结果,只需注意__P的默认值为1

  

属性的默认值。如果省略,则默认设置为" 1"。

另一种选择是使用JSR223 Sampler使用vars来设置变量,使用props来获取属性:

vars.put("my.var", props.get("var_from_prop_file"));