我有需要加载属性文件并将 prop 值分配给 JMeter UDV 的情况。
我已经能够成功加载属性文件,但是我无法将 prop 值分配给 UDV
我已尝试以下操作:
var_from_prop_file=1000)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 属性,而不是反过来。
您所有的尝试都是获取变量,您需要使用不同的函数获取属性:
属性与变量不同。变量是线程的局部变量;属性对于所有线程都是通用的,需要使用 __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)
将 JMeter 属性批量转换为 JMeter 变量的最快方法是使用JSR223 Sampler和以下代码:
SampleResult.setIgnore()
props.entrySet().each {entry ->
vars.putObject(entry.getKey(),entry.getValue())
}
Run Code Online (Sandbox Code Playgroud)
在哪里:
SampleResult.setIgnore()- 从侦听器和 .jtl 结果文件中删除 JSR223 Samplerprops- JMeter Properties 的简写(基本上是java.util.Properties的实例)vars- JMeterVariables类实例的简写