jmeter 啟動過程剖析

楊傑發表於2020-10-27

一、啟動

1. windows啟動

當我們執行jmeter.bat時,啟動如下的jar包:

2. linux啟動

當在linux執行jmeter時,啟動如下的jar包:


從上述各截圖中可得知,jmeter啟動時會呼叫ApacheJMeter.jar包,以下做詳細解讀

二、ApacheJMeter.jar包


1. ShutdownClient 工具類

該類實現向命令列Jmeter程式傳送shutdown命令

2. DynamicClassLoader 動態類載入器

該類實現動態載入jmeter所需的各種資源

3. NewDriver 類

眾所周知java程式需要執行,需要在class檔案中存在main方法,此處先尋找main方法

注:該類其他程式碼可自行閱讀;

三、ApacheJMeter_core.jar包

org.apache.jmeter.JMeter類在該包中,下文將詳細描述該類的呼叫過程

1. start方法





2. startNonGui方法

3. runNonGui方法




即下圖所示過程

在jmeter啟動過程中涉及到如下的重要類:
NewDriver-----------------功能:jmeter入口類,該類通過自定義類載入器載入jmeter的各jar包和庫,並通過自定義類載入器載入JMeter類
JMeter----------------------功能:jmeter引數解析、過程處理、壓測啟動類
CLArgsParser------------功能:jmeter引數解析類,可仿照已有引數新增自定義引數
JMeterUtils----------------功能:jmeter工具類,該類用來載入properties檔案、設定全域性變數等;
FileServer-----------------功能:jmeter通過該類以執行緒安全的方式訪問檔案
HashTree------------------功能:jmeter效能測試指令碼解析生成的樹結構,該類有個表兄弟ListedHashTree同樣很重要
Summariser---------------功能:監聽器,用來蒐集所有的SampleResult,在命令列中執行時預設30秒列印的指標資料,即該類的傑作
ResultCollector-----------功能:蒐集所有SampleResult並輸出到jtl檔案中
JMeterEngine-------------功能:jmeter引擎介面,無論單機、分散式引擎物件,均是該介面的實現
DistributedRunner-------功能:分散式執行時,初始化slave、啟動、停止各slave

相關文章