性能測試-JMeter安裝環境及運行原理

JMeter環境需求

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以建立多個線程的方式來模擬多個用戶執行操做,一個線程表明一個虛擬用戶。當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分佈式執行測試過程
性能測試-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接收並彙總統計測試結果。

相關文章
相關標籤/搜索