我正在与JMeter合作。我想使用用户定义的变量指定测试主机,如下所示:
variable name value
localhost localhost
test 192.168.0.1
hostname ${localhost}
执行测试时,我看到主机名值未被替换,显然测试失败。我知道我可以使用属性并从命令行传递主机名,或者只是更改主机名值。是否有可能像我解释的那样? 感谢。
答案 0 :(得分:13)
我设法解决了我的问题。我已将主机名变量值更改为:${__evalVar(${localhost})}
,但我收到此错误:
ERRROR jmeter.functions.EvalVarFunction:尚未定义变量
所以我在我的Sampler节点的“User defined variable”子节点中移动了hostname变量声明。这解决了它。
答案 1 :(得分:6)
要解决此问题,您应该使用hostname = $ {__ eval($ {localhost})}
http://jmeter.apache.org/usermanual/functions.html#__eval
Carlos的回答有一个错误(由于代表我无法评论),因为它使用了evalVar,这需要一个简单的字符串作为参数:
这有效:$ {__ evalVar(localhost)})
这有效:$ {__ eval($ {localhost})}
这不起作用(当前答案):$ {__ evalVar($ {localhost})} http://jmeter.apache.org/usermanual/functions.html#__evalVar
答案 2 :(得分:1)
答案 3 :(得分:0)
新版本(2.2版),您可以使用${__V(${...})}/
。
例如:${__V(${SERVER_CONTEXT})}/rest
正如@Alies Belik所提到的,如果你得到了
ERRROR jmeter.functions.EvalVarFunction: Variables have not yet been defined
然后在下一个其他UDV(用户定义变量)节点中定义第二个变量。