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