JMeter簡介
JMeter是一款開源桌面軟件斋陪,用來模擬用戶負載來完成性能測試工作癌椿。JMeter可以對web進行測試躺坟,提供web錄制功能属桦,可以擴展JMeter功能來滿足特定的測試需求熊痴。
JMeter體系結構
名字解釋:
1.元件:代表JMeter工具菜單中的一個子菜單,比如HTTP請求聂宾,事務控制器果善,響應斷言等
2.組件:一組元件的集合
JMeter 體系結構:
把上圖拆解成一個三維空間,X空間分為5個維度系谐,Y空間分為2個維度巾陕,Z空間分為1個維度
X1-X5是負載模擬的一個過程,使用這些組件來完成負載的模擬
Y1包含的是負載模擬部分,負責模擬用戶請求
Y2是結果驗證部分鄙煤,負責驗證結果正確性
Z是負責結果的收集晾匠,只有一個組成部分 監(jiān)聽器,監(jiān)聽器可以放在線程組內(nèi)也可以放在線程組外梯刚。
JMeter基本原理是建立一個線程池混聊,多線程取樣器產(chǎn)生大量負載,在運行過程中通過斷言來驗證結果的正確性乾巧,通過監(jiān)聽器來記錄測試結果句喜,如果取樣器中有參數(shù)化的需求,可以通過X2中的配置元件或者前置處理器來完成沟于,如果有關聯(lián)需求咳胃,可以通過后置處理器來完成,如果我們想要設置運行場景旷太,比如模擬多少用戶展懈,運行多長時間,就設置線程組了如果我們想要模擬并發(fā)場景供璧,可以利用定時器來設置存崖;如果想要控制業(yè)務的執(zhí)行邏輯,比如登錄只運行一次可以用控制器來完成睡毒。
元件介紹:
X1取樣器:用來模擬用戶操作来惧,向服務器(被測系統(tǒng))發(fā)出http請求,WebService(SOAP演顾、? ? ? XML _RPC Request)請求或java請求等
X1斷言:用來驗證結果是否正確供搀,用一個預設的結果(值,表達式钠至,時間長短等條件)與實際結果匹配葛虐,匹配到則成功。反之失敗棉钧,較常用的是響應斷言
X1監(jiān)聽器:JMeter的測試結果需要添加監(jiān)聽器來收集屿脐,監(jiān)聽器有兩個任務 1是添加結果監(jiān)聽,并且可以保存測試結果到文件宪卿,這些結果數(shù)據(jù)可以供再次分析使用的诵,2是展示結果,JMeter可以以表格及圖形的形式展現(xiàn)結果
取樣器愧捕,斷言奢驯,監(jiān)聽器組合一起可以完成發(fā)送請求申钩,驗證結果次绘,記錄結果三項工作
X2前置處理器:在測試腳本開發(fā)過程中,在請求發(fā)送前會做一些環(huán)境或參數(shù)的準備工作,比如在對數(shù)據(jù)庫操作前需要先建立一個數(shù)據(jù)庫鏈接邮偎,那么就在前置處理器中完成這個功能
X2配置元件:性能測試中為了模擬大量用戶操作需要做參數(shù)化管跺,Jmeter的參數(shù)化可以通過配置元件來完成,比如CSV Data Set Config,可以幫助我們從文件中讀取測試數(shù)據(jù)禾进,還可以用來記錄服務器的返回數(shù)據(jù)豁跑,簡言之就是為取樣器提供預備數(shù)據(jù),然后由取樣器發(fā)出請求
X2后置處理器:后置處理器一般放在取樣器之后泻云,用來處理服務器的返回結果艇拍,專門用來對響應數(shù)據(jù)做處理的元件,JMeter就是用后置處理器來關聯(lián)的
前置處理器宠纯,配置元件卸夕,后置處理器都是為取樣器提供數(shù)據(jù)支持的,取樣器關注的是業(yè)務邏輯
X3控制器:控制次數(shù)
X4定時器:為了足夠真是的模擬用戶負載婆瓜,有時候會需要模擬這些請求在同一時刻發(fā)送 快集,通過定時器來實現(xiàn)
X5線程組:線程組完成性能測試需要模擬大量用戶負載的情況,在此元件中廉白,我們可以設置運行的線程數(shù)(一線程一用戶)
Test Fragment:輔助組件个初,可以在腳本開發(fā)過程中用來備份元件,Test Fragment下的元件可以被模塊控制器調(diào)用猴蹂,可以利用他來模塊化請求供模塊化控制器調(diào)用
工作臺:功能有:
(1)在工作臺建立一個HTTP代理服務器元件院溺,設置代理信息然后進行錄制
(2)設置服務器監(jiān)控
(3)顯示當前JMeter屬性信息
(4)備份腳本,作為一個元件暫存區(qū)
JMeter運行原理
在JMeter中是以線程的方式來運行磅轻,運行在JVM虛擬機上.JMeter通過線程組來驅(qū)動多個線程運行測試腳本對被測服務器發(fā)起負載覆获,每一個負載機上都可以運行多個線程組,JMeter運行場景不僅可以在GUI方式完成瓢省,還可以使用命令行弄息,命令行運行的方式對于負載機的資源消耗會更小。
JMeter測試計劃要素
JMeter中一個腳本即是一個測試計劃勤婚,也是一個管理單元摹量,JMeter的請求模擬與并發(fā)數(shù)(設置線程數(shù),一個線程代表一個虛擬用戶)設置都子腳本文件中一起設置
要素一:腳本中測試計劃只能有一個
要素二:測試計劃中至少要有一個線程組
要素三:至少要有一個取樣器
要素四:至少要有一個監(jiān)聽器
JMeter環(huán)境介紹
略
本章小結
JMeter運行邏輯如下三部分
第一:利用取樣器模擬用戶請求馒胆,如果需要做一些數(shù)據(jù)及環(huán)境的準備缨称, 使用前置管理器,如果需要對響應的數(shù)據(jù)做處理祝迂,使用后置處理器
第二:控制運行睦尽;使用線程組才設置運行場景,利用邏輯控制器來控制業(yè)務(實際就是控制取樣器)
第三:收集結果型雳,利用斷言來驗證測試結果当凡,利用監(jiān)聽器來收集顯示測試結果
同時JMeter也支持遠程運行山害,彌補單臺機器負載不夠的情況,運城運行時遠程負載機要運行Agent(jmeter-server.bat來啟動)