${name}取数来源

1、${name}从哪里取数

2、User Defined Variables的数据是在哪一个过程中放进去的

3、如何通过beanshell将自己想要的数据放进去,然后在其他地方通过${name}的方式获取

第一个问题的答案:

${name}是在调用一个特殊的函数,函数解析器为:FunctionParser

解析过程如下方截图所示:

${name}取数来源_第1张图片

下方截图分支部分,直接返回function对象,此时会调用function的toString()方法

${name}取数来源_第2张图片

如上所述,最终会返回toString()方法的返回值。

${name}取数来源_第3张图片

toString()方法,其实是从ThreadLocal获得自己线程对应的threadContext对象,并从threadContext对象中取得JMeterVariables variables (JMeterVariables内部封装了一个map)  vars.get(name)调用的map.get(name);

${name}取数来源_第4张图片

第二个问题的答案:

主线程预处理jml解析后的hashtree

${name}取数来源_第5张图片

针对User Defined Variables的处理

${name}取数来源_第6张图片

针对线程组的线程的处理

${name}取数来源_第7张图片

用主线程的context初始化子线程

${name}取数来源_第8张图片
${name}取数来源_第9张图片

第三个问题:

${name}取数来源_第10张图片
${name}取数来源_第11张图片
${name}取数来源_第12张图片

你可能感兴趣的:(${name}取数来源)