如何在用户定义的变量配置中使用提取器中声明的JMeter变量

时间:2018-11-13 17:07:56

标签: jmeter

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

我尝试了同样的事情,在2个不同的UDV节点中手动设置了值,并且效果很好,那么如何将其附加到提取器中声明的JMeter变量上?

2 个答案:

答案 0 :(得分:1)

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

不要使用UDV,请使用带有 namespace MyProject.Properties { 的JSR223 Sampler(或PostProcessor);

vars

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

答案 1 :(得分:1)

根据JMeter Documentation

  

“用户定义的变量”元素使您可以定义初始变量集,就像在“测试计划”中一样。

     

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

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

如果您需要用新值覆盖当前变量,则可以使用__groovy() function,相关语法如下:

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

演示:

enter image description here

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

相关问题