${name}取數來源

?

1、${name}從哪里取數

2、User Defined Variables的數據是在哪一個過程中放進去的

3、如何通過beanshell將自己想要的數據放進去,然后在其他地方通過${name}的方式獲取

第一個問題的答案:

${name}是在調用一個特殊的函數,函數解析器為:FunctionParser

解析過程如下方截圖所示:

下方截圖分支部分,直接返回function對象,此時會調用function的toString()方法

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

toString()方法,其實是從ThreadLocal獲得自己線程對應的threadContext對象,并從threadContext對象中取得JMeterVariables?variables (JMeterVariables內部封裝了一個map)? vars.get(name)調用的map.get(name);

第二個問題的答案:

主線程預處理jml解析后的hashtree

針對User Defined Variables的處理

針對線程組的線程的處理

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

第三個問題:

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,754評論 18 399
  • //Clojure入門教程: Clojure – Functional Programming for the J...
    葡萄喃喃囈語閱讀 3,745評論 0 7
  • 我現在躺在自己修好的床上,特別開心特別滿足。要知道,昨天我差點就要把這床扔掉買個新床了。可是今年錢太緊張,3000...
    綻蕊向陽閱讀 1,083評論 1 2
  • 這天早晨,桑喬手托獵槍,朝天空扣動了扳機。桑喬在打了七槍之后,把獵槍給了桑桑:“再打七槍。” 桑喬是校長,這位看似...
    _卷葉收顏閱讀 906評論 0 0