${__P()} 中的变量插值
Variable interpolation within a ${__P()}
我正在尝试在 ${__P()} 函数中插入一个变量,并且已经阅读了几个关于此事的线程,但它不起作用。我的用户定义变量包含:
FALLBACK_TOKEN someLongString
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,???)}
到目前为止尝试过:
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${FALLBACK_TOKEN})}
// literally returns "${FALLBACK_TOKEN}" (as expected as per Jmeter docs)
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__V(${FALLBACK_TOKEN})})}
// same as above
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__evalVar(${FALLBACK_TOKEN})})}
// returns blank
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__eval(${FALLBACK_TOKEN})})}
// literally returns "${FALLBACK_TOKEN}"
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__eval(FALLBACK_TOKEN)})}
// returns "FALLBACK_TOKEN"
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__evalVar(FALLBACK_TOKEN})})}
// returns blank
根据 http://jmeter.apache.org/usermanual/functions.html#__evalVar 上的 Jmeter 文档,我希望 evalVar
或 eval
都能正常工作(老实说,仍然不太清楚其中的区别)。我错过了什么?
属性 正在填充 before 用户定义的变量值被评估,因此它不会以这种方式工作。
选项在:
在 .jmx 脚本中硬编码默认值,例如:
${__P(tokenSetOnCommandLine,something)}
在user.properties文件中设置默认值(在JMeter的/bin文件夹下),添加以下行:
tokenSetOnCommandLine=something
在第二种情况下,如果您提供 tokenSetOnCommandLine
值作为命令行参数,例如:
jmeter -JtokenSetOnCommandLine=somethingElse
它将用 somethingElse
覆盖 something
的 "default" 值。否则将使用 something
。
有关 JMeter 属性的详细信息,请参阅 Apache JMeter Properties Customization Guide
我正在尝试在 ${__P()} 函数中插入一个变量,并且已经阅读了几个关于此事的线程,但它不起作用。我的用户定义变量包含:
FALLBACK_TOKEN someLongString
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,???)}
到目前为止尝试过:
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${FALLBACK_TOKEN})}
// literally returns "${FALLBACK_TOKEN}" (as expected as per Jmeter docs)
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__V(${FALLBACK_TOKEN})})}
// same as above
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__evalVar(${FALLBACK_TOKEN})})}
// returns blank
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__eval(${FALLBACK_TOKEN})})}
// literally returns "${FALLBACK_TOKEN}"
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__eval(FALLBACK_TOKEN)})}
// returns "FALLBACK_TOKEN"
ACTUAL_TOKEN ${__P(tokenSetOnCommandLine,${__evalVar(FALLBACK_TOKEN})})}
// returns blank
根据 http://jmeter.apache.org/usermanual/functions.html#__evalVar 上的 Jmeter 文档,我希望 evalVar
或 eval
都能正常工作(老实说,仍然不太清楚其中的区别)。我错过了什么?
属性 正在填充 before 用户定义的变量值被评估,因此它不会以这种方式工作。
选项在:
在 .jmx 脚本中硬编码默认值,例如:
${__P(tokenSetOnCommandLine,something)}
在user.properties文件中设置默认值(在JMeter的/bin文件夹下),添加以下行:
tokenSetOnCommandLine=something
在第二种情况下,如果您提供
tokenSetOnCommandLine
值作为命令行参数,例如:jmeter -JtokenSetOnCommandLine=somethingElse
它将用
somethingElse
覆盖something
的 "default" 值。否则将使用something
。
有关 JMeter 属性的详细信息,请参阅 Apache JMeter Properties Customization Guide