我有一个http请求,该请求使用提取器从主体设置JMeter变量(将其称为test
)。当我查看调试控制器时,可以看到它工作正常。接下来,我想在变量的开头添加一些内容,以便添加用户定义的变量节点,并添加名称为new
的变量,并将其值设置为${test}
。但是,当我查看调试响应时,会看到${test}
而不是值。
我尝试了同样的事情,在2个不同的UDV节点中手动设置了值,并且效果很好,那么如何将其附加到提取器中声明的JMeter变量上?
答案 0 :(得分:1)
UDV不能以动态方式使用,因为它们在测试开始时只能处理一次。
不要使用UDV,请使用带有 namespace MyProject.Properties {
的JSR223 Sampler(或PostProcessor);
vars
另一种选择是使用Set Variables Action插件
答案 1 :(得分:1)
“用户定义的变量”元素使您可以定义初始变量集,就像在“测试计划”中一样。
请注意,测试计划中的所有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脚本还能做些什么