jmeter 啟動過程剖析
一、啟動
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
相關文章
- 效能測試工具 jmeter 原始碼剖析:jmeter 分散式壓測啟動過程JMeter原始碼分散式
- Android啟動過程剖析-深入淺出Android
- SpringBoot啟動過程Spring Boot
- Windows 啟動過程Windows
- Service啟動過程
- App 啟動過程(含 Activity 啟動過程) | 安卓 offer 收割基APP安卓
- iOS App啟動過程iOSAPP
- Android App啟動過程AndroidAPP
- SpringBoot 系列-啟動過程Spring Boot
- Liferay 啟動過程分析
- main的啟動過程AI
- Spring Boot 啟動過程Spring Boot
- Angular的啟動過程Angular
- Spring啟動過程(一)Spring
- Linux 啟動過程分析Linux
- Linux系統啟動過程Linux
- Linux核心Kernel啟動過程Linux
- Spring Security 啟動過程分析Spring
- HDFS啟動過程+安全模式模式
- Eureka Server啟動過程分析Server
- 計算機啟動過程計算機
- app的啟動過程(三)APP
- DUBBO服務啟動過程
- 7.neutron-server啟動——neutron api啟動過程ServerAPI
- 【原始碼】Redis Server啟動過程原始碼RedisServer
- Spring啟動過程——原始碼分析Spring原始碼
- 根Activity元件的啟動過程元件
- redis啟動初始化過程Redis
- Android效能優化之啟動過程(冷啟動和熱啟動)Android優化
- .net core web 啟動過程(5)-HostBuilderContextWebUIContext
- .net core web 啟動過程(4)-HostingEnvironmentWeb
- 作業系統啟動的過程作業系統
- Cypress 本身啟動過程的除錯除錯
- Flutter UI架構啟動過程-11FlutterUI架構
- 【Android】【init】解析init程式啟動過程Android
- 以太坊啟動過程原始碼解析原始碼
- 理解 Android 程式啟動之全過程Android
- Linux的啟動過程及init程式Linux