jmeter基本原理是建立一個線程池,多線程運行取樣器產生大量負載,在運行過程中通過斷言來驗證結果的正確性,通過監聽器來記錄測試結果。如果取樣器中有參數化的需求,可以通過配置元件或者前置處理器來完成。如果有關聯需求,可以通過後置處理器來完成。如果我們想要設置運行場景,比如模擬多少用戶,運行多長時間,就設置線程組。如果我們想要模擬併發場景,可以利用定時器來設置;如果我們想要控制業務的執行邏輯,比如登錄只運行一次,我們可以用控制器來完成。
- 取樣器
取樣器的訪問路徑:【測試計劃】——【線程組】——【Sampler】
- 斷言
斷言用來驗證結果是否正確,預設一個結果(值、表達式、時間長短等條件)與實際結果匹配,匹配到則成功,反之失敗。
斷言的訪問路徑是:【測試計劃】——【斷言】
- 監聽器
Jmeter的測試結果需要監聽器來收集,監聽器:①添加結果監聽,並且可以保存測試結果到文件,這些結果數據可以供再次分析使用;②展示結果,Jmeter可以以表格及圖形的形式展現結果,方便測試人員分析測試結果。
監聽器的訪問路徑:【測試計劃】——斷言
- 前置處理器
請求發送前做一些環境或者參數的準備工作,可以在前置處理器中來完成這些工作。比如,我們對數據庫進行操作前需要先建立一個數據庫連接,那麼前置處理器就可以完成這個功能。
前置處理器的訪問路徑:【測試計劃】——【前置處理器】
- 配置元件
性能測試中爲了模擬大量用戶操作我們往往需要做參數化,Jmeter的參數化可以通過配置元件來完成,比如CSV Data Set Config,它可以幫助我們從文件中讀取測試數據。配置元件也可以用來記錄服務器的返回數據,比如Http Cache Manage,自動記錄服務器返回的Cache信息。
配置元件訪問路徑:【測試計劃】——【配置元件】
- 後置處理器
後置處理器一般放在取樣器之後,用來處理服務器的返回結果。比如登錄web後服務器會返回一個SessionID,Jmeter可以通過正則表達式提取數據。
後置處理器訪問路徑:【測試計劃】——【後置處理器】
前置處理器、配置元件、後置處理器都是爲取樣器提供數據支持的,取樣器關注的是業務邏輯。
- 控制器
控制器的訪問路徑:【測試計劃】——【邏輯控制器】
- 定時器
爲了足夠真實地模擬用戶負載,我們有時需要模擬請求在同一時刻發送,Jmeter可以通過定時器來完成這個需求。定時器種類有很多。
訪問路徑:【測試計劃】——【線程組】——【定時器】
- 線程組
在線程組中可以設置運行的線程組(模擬多用戶,一線程一用戶),還可以設置運行時長、定時運行等。
訪問路徑:【測試計劃】——【Threads(Users)】
- Test Fragment
這是一個輔助的元件,在此節點下面幾乎可以放置任何Jmeter測試元件,但它一般不會被運行。①在腳本開發過程中可以用它來備份文件,②下面的元件可以被模塊控制器調用,可以利用它來模塊化請求供模塊控制器調用。
- 工作臺
不直接參與運行,①運行Jmeter錄製Http協議腳本時就用到它,我們可以在它下面建立一個HTTP代理服務器元件,設置代理信息然後進行錄製;②設置服務器監控(HTTP Mirror Server);③顯示當前Jmeter屬性信息;④備份腳本。