Ссылка на переменную внутри переменной в JMeter
Я работаю с JMeter. Я хотел бы указать тестовый узел с использованием пользовательских переменных, например:
variable name value
localhost localhost
test 192.168.0.1
hostname ${localhost}
Выполняя тест, я вижу, что значение имени хоста не заменяется, и, очевидно, тест терпит неудачу. Я знаю, что могу использовать свойства и передать имя хоста из командной строки или просто изменить значение имени хоста. Возможно ли это, как я объяснил?
Спасибо.
Ответы
Ответ 1
Мне удалось решить мою проблему. Я изменил значение переменной hostname на: ${__evalVar(${localhost})}
, но у меня есть эта ошибка:
ERRROR jmeter.functions.EvalVarFunction: переменные еще не определены
Итак, я переместил объявление переменной имени хоста в дочерний элемент user > user node моего Sampler node. Это решило его.
Ответ 2
Чтобы решить эту проблему, вы должны использовать hostname = $ {__ eval ($ {localhost})}}
http://jmeter.apache.org/usermanual/functions.html#__eval
Ответ карлоса содержит ошибку (которую я не могу комментировать из-за повторения), поскольку он использует evalVar, для этого в качестве аргумента требуется простая строка:
Это работает: $ {__ evalVar (localhost)})
Это работает: $ {__ eval ($ {localhost})}
Это не работает (текущий ответ): $ {__ evalVar ($ {localhost})} http://jmeter.apache.org/usermanual/functions.html#__evalVar
Ответ 3
Новые более новые версии (от версии 2.2), вы можете использовать ${__V(${...})}/
.
Пример: ${__V(${SERVER_CONTEXT})}/rest
Как сказал @Alies Belik, если вы получаете
ERRROR jmeter.functions.EvalVarFunction: Variables have not yet been defined
затем определите вторую переменную в следующих других UDV (пользовательские переменные) node.
Ответ 4
Проверьте этот форум:
от Blazemeter
Например: получение значения переменной "listid_XXX", где число XXX происходит из индексной переменной:
${__V(listid_${idx1})}