19

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

variable name       value  
localhost           localhost  
test                192.168.0.1
hostname            ${localhost}  

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

4

4 回答 4

12

我设法解决了我的问题。我已将主机名变量值更改为:${__evalVar(${localhost})},但出现此错误:

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

因此,我将主机名变量声明移到了 Sampler 节点的“用户定义变量”子节点中。那解决了它。

于 2012-04-19T09:02:53.833 回答
9

要解决这个问题,你应该使用 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

于 2016-08-24T18:24:31.957 回答
2

查看这个论坛: 来自 Blazemeter

例如:获取变量“listid_XXX”的值,其中 XXX 编号来自索引变量:

${__V(listid_${idx1})}
于 2019-09-27T06:44:45.917 回答
0

新的较新版本(从 2.2 开始),您可以使用${__V(${...})}/.

前任:${__V(${SERVER_CONTEXT})}/rest

正如@Alies Belik 提到的,如果你得到

ERRROR jmeter.functions.EvalVarFunction: Variables have not yet been defined

然后在下一个其他 UDV(用户定义变量)节点中定义第二个变量。

于 2014-04-16T09:04:17.090 回答