jmeter是建立一個線程池,多線程運行sampler來產生負載,通過添加監聽器(聚合報告、圖形結果和察看結果樹等)來記錄測試結果 ,還可以通過斷言來驗證結果的正確性。
jmeter是運行在java虛擬機上的,每個進程都會佔用內存資源,如果以進程方式來運行的話,每臺負載機上的進程數量不能太多,要做大量併發就要大量負載機。jmeter可以通過線程組驅動多個線程,運行測試腳本對被測服務器發起負載,每個負載機都可以運行多個線程組。
控制機:參與腳本的運行,可以指揮遠程負載機運行,收集遠程負載機的測試結果。
負載機:向被測應用系統發起負載,控制機會把運行的腳本隱蔽原樣copy遠程負載機,如果運行的測試腳本有參數文件及依賴的jar包時,需要手動把這些東西copy到負載機。但是要保證與原始腳本路徑相同。最終,負載機會收集被壓服務器返回的結果再傳遞給控制機顯示在聚合報告中。
例如:我們模擬500的併發量給被測系統,設置5臺負載機,這時需要在控制機設置100的併發量,這也是分佈式的原理所在,可以緩解單個負載機的壓力。