3.JMeter測試計劃要素瀏覽器
JMeter中一個腳本便是一個測試計劃,也是一個管理單元。JMeter的請求模擬與併發數(設置線程數,一個線程表明一個虛擬用戶)設置都在腳本文件中一塊兒設置。服務器
要素一:腳本中測試計劃只能有一個網絡
JMeter測試計劃相似LoadRunner Controller中的測試場景,同一時刻場景當然只能有一個,JMeter腳本在GUI中顯示時是樹形結構,測試計劃是根節點,根節點固然只能有一個。併發
要素二:測試計劃中至少要有一個線程組函數
JMeter負載是經過線程組驅動的,因此計劃中至少要出現一個線程組。JMeter測試計劃支持多個線程組,把不想管的業務分部在不一樣的線程組中。工具
要素三:至少要有一個取樣器性能
測試的目的就是要模擬用戶請求,沒有取樣腳本就毫無心義。測試
要素四:至少要有一個監聽器spa
測試結果用來衡量系統性能,咱們須要從結果中分析系統性能。線程
4.JMeter運行邏輯
第一,利用取樣器模擬用戶請求,若是須要作一些數據及環境的準備,那麼久使用配置管理器,若是須要對響應的數據作處理,使用後置處理器。
第二,控制運行,使用線程組來設置運行場景,利用邏輯控制器來控制業務(實際就是控制取樣器)。
第三,收集結果,利用斷言來驗證測試結果,利用監聽器來收集顯示測試結果。
同時JMeter也支持遠程運行,彌補單臺機器負載不夠的狀況。
5.JMeter Http協議錄製
Http代理方式進行錄製的原理是解析網絡數據包。
5.1 Badboy進行錄製
Badboy錄製的腳本能夠直接導出爲.jmx格式,jmx正是JMeter腳本保存的格式,jmx其實是一個XML格式的文件。
Badboy的錄製方式有兩種:一種是Request方式,一種是Navigation方式。這兩種方式區別以下:
request:模仿瀏覽器發送表單信息到服務器,每一個資源都將做爲請求發送;
Navigation:記錄用戶鼠標操做,相似於自動化測試工具QTP,回放時模擬一個個點擊。
5.2 界面詳解
經過Badboy錄製後的腳本導入到JMeter,以樹形結構顯示腳本,執行時原則上按節點前後順序往下執行。詳細界面以下:
A. Test Plan:測試計劃,JMeter測試腳本根節點,每個測試腳本都是一個測試計劃,名稱能夠本身定義。
(1)設置用戶全局變量,即在「用戶定義變量」中定義。
(2)獨立運行每一個線程組,若是一個測試計劃中有多個線程組,設置此項能夠生效。不設置時每一個線程組同時運行。
(3)Run teardown Thread Groups after shutdown of main threads,關閉主線程後運行teardown程序來正常關閉線程組(運行的線程本次迭代完成後關閉)。
(4)函數測試模式,在調試腳本的過程當中咱們可能須要獲取服務器返回的詳細信息就能夠選擇此項,此項記錄較多的數據會影響測試效率,因此在執行性能測試時關閉此項。
(5)Add diretory or jar to classpath,把測試須要依賴的jar包或包所在的目錄加入類路徑。不過仍是建議你們把依賴的jar包添加到%JMETER_HOME%\lib目錄下。
B. Thread Group:線程組模擬虛擬用戶的發起點,在此能夠設置線程數(相似LoadRunner中的多少個虛擬用戶)及運行次數或者運行時間,還能夠定義調度時間和運行時長。
C. HTTP Cookie Manager:咱們知道在用IE訪問Web頁面時會記錄Cookie信息,JMeter經過加入HTTP Cookie Manager來自動記錄Cookie信息,這裏選擇默認便可。