【问题标题】:Load properties file in jmeter then assign properties value to JMeter variable在 jmeter 中加载属性文件,然后将属性值分配给 JMeter 变量
【发布时间】:2018-04-25 11:01:16
【问题描述】:

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

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

我尝试了以下方法:

  1. 加载道具文件包含键值(即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.var 值创建 UDV 时的期望也是 1000,但这里不会发生。

我已经尝试过 __eval 和 __evalVar - 到目前为止没有运气。

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

到目前为止,还没有调试采样器 - 看起来 jmeter 先加载 UDV,然后再加载 jmeter 属性,而不是这样。

【问题讨论】:

    标签: jmeter


    【解决方案1】:

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

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

    地点:

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

    【讨论】:

      【解决方案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")); 
      

      【讨论】:

      • 第一个${__P(var_from_prop_file)} 对我不起作用,但第二个工作完美,当我在UDV my.var = ${__property(var_from_prop_file)} 中设置时,我也可以在调试采样器my.var = 100 和var_from_prop_file=100 中看到.有点奇怪,根据 jmeter 手册,__P 和 __property 阅读相同的内容
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多