【问题标题】:How do I use a JMeter Variable declared in an extractor in a User Defined Variable config如何在用户定义的变量配置中使用提取器中声明的 JMeter 变量
【发布时间】:2019-04-16 14:14:18
【问题描述】:

我有一个 http 请求,它使用提取器从正文中设置一个 JMeter 变量(我们称之为test)。当我查看调试控制器时,我可以看到它工作正常。接下来,我想在变量的开头添加一些内容,因此我添加了一个用户定义的变量节点并添加了一个名为 new 的变量,并将值设置为 ${test}。但是,当我查看调试响应时,我看到的是 ${test} 而不是值。

我尝试了在 2 个不同的 UDV 节点中手动设置值的相同方法,它工作正常,那么如何附加到提取器中声明的 JMeter 变量?

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    UDV 不能以动态方式使用,因为它们在测试开始时被处理一次。

    不要使用UDV,使用JSR223 Sampler(或PostProcessor)和vars

     vars.put("new", "prefix"+ vars.get("test"))
    

    另一种选择是使用Set Variables Action 插件

    【讨论】:

    【解决方案2】:

    根据JMeter Documentation

    用户定义的变量元素允许您定义一个初始变量集,就像在测试计划中一样。

    请注意,测试计划中的所有 UDV 元素 - 无论它们在哪里 - 在开始时都会处理

    因此,用户定义的变量元素将仅在测试计划启动时读取一次。

    如果您需要用一个新值覆盖当前变量,您可以使用 __groovy() function,相关语法类似于:

    ${__groovy(vars.put('foo'\, 'some_prefix_' + vars.get('foo')),)}
    

    演示:

    vars 是 JMeterVariables 类实例的简写,它提供对当前线程范围内所有 JMeter Variables 的读写访问。查看The Groovy Templates Cheat Sheet for JMeter,了解您还可以在 JMeter 测试中使用 Groovy 脚本做什么

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      相关资源
      最近更新 更多