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

J. *_*oem 2 jmeter

我有需要加载属性文件并将 prop 值分配给 JMeter UDV 的情况。

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

我已尝试以下操作:

  1. 加载包含键值的 prop 文件(即var_from_prop_file=1000
  2. 创建 UDV(键名“ my.var”和值“ ${var_from_prop_file}”)

使用调试采样器运行调试脚本,我可以看到var_from_prop_file分配给值1000

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

我已经尝试过__evaland _ _evalVar- 到目前为止还没有运气。

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

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

use*_*900 5

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

属性与变量不同。变量是线程的局部变量;属性对于所有线程都是通用的,需要使用 __P 或 __property 函数来引用。

根据您的情况设置my.var以下值

${__P(var_from_prop_file)}
Run Code Online (Sandbox Code Playgroud)

或者

${__property(var_from_prop_file)}
Run Code Online (Sandbox Code Playgroud)

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

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

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

vars.put("my.var", props.get("var_from_prop_file")); 
Run Code Online (Sandbox Code Playgroud)


Dmi*_*i T 5

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

SampleResult.setIgnore()

props.entrySet().each {entry ->
    vars.putObject(entry.getKey(),entry.getValue())
}
Run Code Online (Sandbox Code Playgroud)

在哪里: