JMeter也稱爲「Apache JMeter」,它是一個開源
的,100%基於Java
的應用程式,帶有圖形介面。 它旨在分析和衡量Web應用程式和各種服務的效能和負載功能行爲。
JMeter主要用於測試Web應用程式或FTP應用程式,它適用於功能測試,JDBC數據庫連線,Web服務,通用TCP連線和OS本機進程。 可以執行各種測試活動,如效能,負載,壓力,迴歸和功能測試
等。
JMeter以建立多個執行緒的方式來模擬多個使用者執行操作,一個執行緒代表一個虛擬使用者。當JMeter執行測試時,測試計劃會發送到負載機,並向負載機發送命令以CLI方式執行測試,產生多個執行緒向被測系統發送請求,生成負載。
bin目錄
lib目錄
licenses目錄
printable_docs目錄
測試計劃由測試元素組成,例如執行緒組,邏輯控制器,樣本生成控制器,監聽器,定時器,斷言和設定元素。
JMeter測試計劃四要素
介面三要素
使用badboy錄製web端指令碼:
使用jmeter自身代理錄製行動端指令碼:
在bin\jmeter.properties檔案中修改language=zh_CN(由於當前行被註釋掉了,需要另起一行或者去掉#),儲存後需要重新啓動JMeter生效
錄製指令碼中存在中文亂碼的話,需要修改jmeter原始碼來處理,對jar包進行反編譯較麻煩
HTTP管理器
HTTP請求設定
http協定預設80、https協定預設443
HTTP請求預設值
參照變數:${變數名}
"${變數名}"
(需要帶上雙引號)"${變數名}"
(需要帶上雙引號)從上一條請求中獲取數據,在下一個請求中使用該數據
使用場景:介面返回值爲html或xml格式時,使用xpath提取器
//標籤名
使用場景:介面返回值爲json格式時使用
$..key
使用場景:適用於任何返回格式的介面
$數位$
,數位表示取匹配值中的第幾組斷言就是讓程式代替人工去判斷介面響應數據是否達到預期
響應斷言
在對於請求新增集合點Snychronyzing Timer->集合點
新增聚合報告
設定集合點:
注意事項:
使用步驟
計數函數
__conuter計數
由多臺電腦共同完成同一個任務(請求)的部署,這種部署叫分佈式部署
步驟
執行機Slave:(就是肉雞)
控制機Master:
注意事項:
CLI命令列模式,執行命令:jmeter -n -t 測試指令碼路徑.jmx -l 報告路徑 -e -o tableresult
不勾選任何選項的使用方法:
"${key}"="中文值"
勾選將條件解釋爲變數表達式的使用方法:
全部勾選:
回圈控制器只控制內部的取樣器,在控制器外部的取樣器只由執行緒組的回圈次數控制
具有層次結構的元素的作用域規則如下:
(1)若其父節點爲取樣器,則其只對該取樣器起作用;
(2)若其父節點爲邏輯控制器,則會影響邏輯控制器下的所有取樣器;
(3)若其父節點爲執行緒組,則會影響執行緒組下的所有取樣器;
(4)若其父節點爲測試計劃,則會影響測試計劃下的所有取樣器。
在同一作用域範圍內,測試計劃的元件按以下順序執行:
備註:元件不會因爲在指令碼中的放置順序而改變其執行順序,如果在一個指令碼中有多個同類型的元件,他們的執行順序是按照在指令碼中的排序執行的。
新增設定元件-Cookie管理器,增加session鍵值,模擬已登錄狀態
效能測試指通過自動化測試工具模擬多種正常、峯值以及異常負載條件來對系統各項指標進行測試。屬於軟體的非功能測試,在功能測試之後執行。
系統指標
資源指標
參考文件: