Jmeter就是先創建線程池,多線程運行取樣器(Sampler),產生大量負載,運行過程當中用斷言驗證結果正確與否,用監聽器記錄測試結果。數據庫
取樣器若是有參數化需求,交由X2中的前置處理器或配置元件完成。服務器
若是有關聯需求,交由後置處理器完成。若是要模擬運行場景,就設置線程組。模擬併發場景,利用定時器設置,控制業務的執行邏輯,用控制器完成。多線程
X1到X5用來模擬負載,統稱謂Y1,也可說是模擬用戶請求。併發
Y2用斷言來驗證結果,看結果對不對。函數
Z收集負載的結果,可在線程組內也可在線程組外。性能
X1測試
取樣器(Sampler)用來模擬用戶操做,發送請求,支持多種協議。線程
斷言(Assertions),預設結果,用以與實際結果,看運行是否正確。設計
監聽器(Listener),添加結果監聽,可供再次分析,或展現結果。3d
測試計劃是根節點,其下能夠有多個Thread Group,起始可配setUp Thread Group和tearDown Group。在每一個Group下可建立其它節點,模擬各種實際行爲。輔之以參數配置,完成複雜的場景設計。
X2
Pre Processors 準備環境和參數,好比發送數據庫請求就得先鏈接數據庫。
Config Element 爲模擬大量用戶操做,每每要作參數化,這就交由配置元件完成。Jmeter還提供了函數,用來動態生成數據。總之就是爲Sampler預備數據。
Post Processors 用來處理服務器的返回結果,
X3
Logic Controller 模擬業務邏輯
X4
Timer 控制請求的發送時間,好比模擬大量請求併發
X5
就是模擬大量用戶,一個線程對應一個用戶
其它
Test Fragment 其下能夠聽任何測試元件,但通常不會運行。用來備份元件,或是被模塊控制器調用。
Non Test Elements
setUp與tearDown分別爲開始與結束,能夠在當中作些初始化和收尾的工做,能夠不用,會在Group以前執行,非併發。(Thread Group爲併發執行)
中間的Thread Group爲主體請求。
新建請求,Jmeter自己是基於協議層的,因此這裏都是不一樣的請求協議
設置請求的各個參數,無他。
在測試計劃中添加View Results Tree和Summar Report,監聽請求。
點擊運行,能夠在Tree中查看結果。這裏發起了3次請求,綠色即代表請求成功。
左側能夠選擇請求結果的表示形式,右側Request選項卡有請求的具體信息,Response Data則爲響應數據。
能夠選擇正則測試器,對請求結果進行正則匹配,如<title>(.*)</title>。用正則就能夠設置測試點,取變量,作關聯等其它 操做。
這是對線程的設置。性能測試的思想就是看服務端如何響應請求,這裏就是在設置線程數,運行區間,循環次數等。
邏輯控制器是爲了模擬各種場景。新建一個控制器做爲父節點,在其下建立request做爲子節點,就可控制其行爲。