JMeter工具和其他性能工具在原理上完全一致,工具包含四個部分:
1)負載發生器(發送請求):用於產生負載,通常以多線程或是多進程的方式模擬用戶行爲。
2)用戶運行器(請求規則):通常是一個腳本運行引擎 ,用戶運行器附加在線程或進程上,根據腳本要求模擬指定的用戶行爲。
3)資源生成器(資源數據):用於生成測試過程中服務器、負載機的資源數據。
4)報表生成器(數據報表):根據測試中獲得的數據生成報表,提供可視化的數據顯示方式。
線程組Threads
三個不同的線程組,只是執行順序的設置不同,其他功能是一樣的。
1)setup thread group:預測試(初始化)操作,在另外兩個線程組執行之前執行的線程組
2)teardown thread group:在另外兩個線程組執行之後執行的線程組
3)thread group:虛擬用戶組。線程組中的每個線程模擬成每個虛擬用戶。
測試片段元素Test Fragment
是控制器上一種特殊的線程組。與thread group不同,只有當它是一個模塊控制器或者是被控制器所引用時纔會被執行。
兩種控制器
1)取樣器Sampler(發送請求):性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元。
2)邏輯控制器Logic controller:有兩類
(1)用於控制Sampler節點發送請求的邏輯順序,常用:如果(If)控制器、switch Controller、Runtime Controller、循環控制器等
(2)用來組織可控制Sampler節點的,如事務控制器Transaction Controller、吞吐量控制器
配置元件Config Element
用於提供對靜態數據配置的支持。
1)CSV Data Set Config:將本地數據文件形成Data Pool,拆分後存儲到變量中,適合處理多變量的場景
2)HTTP信息頭管理器:可添加或者重載HTTP請求頭。
3)HTTP Cookie管理器:兩個功能
(1)像web瀏覽器一樣存儲和發送Cookie。需先定義屬性CookieManager.save.cookie=true
(2)手動爲Cookie管理器添加一個cookie
定時器Timer
用於操作之間設置等待時間(類似LoadRunner的思考時間)。
前置處理器Pre Processors
用於在實際的請求發出之前對即將發出的請求進行特殊處理。例如,HTTP URL重寫修復符 ,可以實現URL重寫,當URL中含有sessionID一類的session信息時,可以通過該處理器填充發出請求的實際的sessionID。
後置處理器Post Processors
用於對Sampler發出請求後得到的服務器響應進行處理。
斷言Assertions
斷言用於檢查測試中得到的響應數據等是否符合預期,斷言一般用來設置檢查點。
監聽器Listener
用來對測試結果數據進行處理和可視化展示的一系列元件。
參考:http://www.spasvo.com/ceshi/open/kyxncsgj/Jmeter/20131210105807_4.html