在JMeter中引用变量中的变量

Car*_*rlo 18 variables jmeter

我正在和JMeter合作.我想使用用户定义的变量指定测试主机,如下所示:

variable name       value  
localhost           localhost  
test                192.168.0.1
hostname            ${localhost}  
Run Code Online (Sandbox Code Playgroud)

执行测试,我发现主机名值没有被替换,显然测试失败了.我知道我可以使用属性并从命令行传递主机名,或者只是更改主机名值.是否有可能像我解释的那样?
谢谢.

Car*_*rlo 13

我设法解决了我的问题.我已将hostname变量值更改为:${__evalVar(${localhost})},但我遇到此错误:

ERRROR jmeter.functions.EvalVarFunction:尚未定义变量

所以我在我的Sampler节点的"User defined variable"子节点中移动了hostname变量声明.这解决了它.

  • 很好,你自己解决了这个问题.一个注意事项:[测试计划中的所有UDV元素 - 无论它们在何处 - 都在开始时处理](http://jmeter.apache.org/usermanual/component_reference.html#User_Defined_Variables),所以我也可以简单地使用2 _consequent_单独的UDV并在第一个'localhost'var和第二个 - 'hostname'中定义你的方式. (4认同)

小智 7

要解决这个问题,你应该使用hostname = $ {__ eval($ {localhost})}
http://jmeter.apache.org/usermanual/functions.html#__eval
Carlos的回答有错误(我无法评论到期)为了代表它使用evalVar,这需要一个普通字符串作为参数:

这有效:$ {__ evalVar(localhost)})
这有效:$ {__ eval($ {localhost})}
这不起作用(当前答案):$ {__ evalVar($ {localhost})} http:// jmeter .apache.org /用户手册/ functions.html #__ evalVar