?
1、${name}從哪里取數(shù)
2、User Defined Variables的數(shù)據(jù)是在哪一個過程中放進(jìn)去的
3、如何通過beanshell將自己想要的數(shù)據(jù)放進(jìn)去,然后在其他地方通過${name}的方式獲取
第一個問題的答案:
${name}是在調(diào)用一個特殊的函數(shù),函數(shù)解析器為:FunctionParser
解析過程如下方截圖所示:
下方截圖分支部分,直接返回function對象,此時會調(diào)用function的toString()方法
如上所述,最終會返回toString()方法的返回值。
toString()方法,其實是從ThreadLocal獲得自己線程對應(yīng)的threadContext對象,并從threadContext對象中取得JMeterVariables?variables (JMeterVariables內(nèi)部封裝了一個map)? vars.get(name)調(diào)用的map.get(name);
第二個問題的答案:
主線程預(yù)處理jml解析后的hashtree
針對User Defined Variables的處理
針對線程組的線程的處理
用主線程的context初始化子線程
第三個問題: