JMeter是純Java應用程序,所以有Java運行環境的要求。不一樣版本服務器
JMeter對Java版本的要求不盡相同。好比:網絡
JMeter3.3僅支持Java 8多線程
JMeter4.0要求Java 8+(表示大於等於Java 8版本)架構
JMeter5.1.1要求Java 8+併發
Java版本通常指的是JDK版本,這兩個概念能夠無差異對待。目前JDK分佈式
能夠分爲Oracle JDK與Open JDK兩類,其中Open JDK是Oracleide
JDK的開源免費版。高併發
從2019年1月開始,LTS的Oracle JDK8與Oracle JDK11再也不免費,企業須要獲取JDK的更新升級,則須要購買Orace的訂閱服務。也能夠不付費而使用免費的Open JDK 8/11,二者沒有太大的區別。性能
JMeter以建立多個線程的方式來模擬多個用戶執行操做,一個線程表明一個虛擬用戶。當JMeter執行測試時,測試計劃會發送到負載機,並向負載機發送命令以CLI方式執行測試,產生多個線程向被測系統發送請求,生成負載。測試
GUI模式
圖形用戶界面運行模式。可視化顯示更加直觀,可以使用鼠標操做更爲方便。
CLI模式
命令行模式(舊稱NON GUI)。
使用GUI模式存在以下問題:
1)GUI模式運行時會消耗大量的系統資源,從而影響測試結果;
2)某些環境中可能沒法使用GUI模式,好比將JMeter部署在沒有GUI的Linux系統上。
爲了規避這些問題,JMeter提供了CLI模式,能夠經過運行JMeter命令來執行測試。
建議使用GUI模式來建立和調試測試腳本;使用CLI模式執行測試並收集測試結果。
基於運行架構,能夠分爲兩種:
單機模式
JMeter安裝在一臺服務器上,這臺機器也是負載機,全部請求都從該機器發出
分佈式模式
單機模式存在以下問題:
1)JMeter運行時,產生的衆多線程會消耗大量的CPU,內存資源,負載機自己可能成爲測試瓶頸;
2)網絡上能傳輸的數據量受網絡帶寬影響,沒法作到高併發,致使測試結果不許確。
使用分佈式模式能夠解決這些問題,使用一臺Master控制多臺遠程Slave,將測試計劃分發到不一樣的Slave上執行,請求從不一樣的Slave發出。
JMeter分佈式體系結構
JMeter分佈式執行測試過程
1.首先啓動每臺Slave上的Agent程序
Windows: jmeter-server.bat,Linux/Unix: jmeterserver;
2.啓動Master後自動鏈接各臺遠程Slave;
3.Master將存儲在本地的測試計劃(jmx文件)分發到各臺遠程Slave,並命令各Slave以CLI模式執行JMeter測試;
注意:參數化文件或依賴包須要手工拷貝到各臺遠程Slave上;
4.Slave執行測試向SUT(被測系統)發送請求,並接受服務器返回的響應結果;
5.Slave將測試結果回送給Master;
6.Master接收並彙總統計測試結果。