JMeter是一款非常不錯的免費開源壓力測試工具,越來越多的公司在使用。不過,在使用過程中可能會存在一些問題,比如:GUI模式非常消耗資源,單個客戶端測試無法達到目標壓力。而使用非 GUI 模式,即命令列模式執行JMeter測試指令碼能夠大大縮減所需要的系統資源,使用遠端啟動模式也可以像Loadrunner那樣進行分散式測試。下面跟隨小編一起來看看吧。
工具/原料
JMeter安裝包
一臺客戶機
一臺伺服器
非GUI模式下執行JMeter
非GUI模式包括在Windows和Linux下執行,小編在這裡演示Windows下使用DOS命令執行,Linux下與之類似。
使用Badboy錄製指令碼匯入JMeter後除錯指令碼正常執行,並配置好執行緒數、迴圈數、排程器等,如下圖:
在命令列中輸入:cmd進入DOS命令視窗,再進入JMeter安裝的bin目錄,如下圖:
DOS命令執行語法:jmeter -n -t
--當前目錄執行
JMeter 預設去當前目錄尋找指令碼檔案,並把日誌記錄在當前目錄。如果在D:\E\02_Test\A2_效能測試\JMeter\apache-jmeter-2.13\bin目錄下執行以上命令,JMeter會去該目錄下尋找product_select.jmx指令碼並把執行結果放在該目錄。
--其他目錄運 行
如果指令碼在其他目錄,並且執行結果存放到其他目錄,需要使用絕對路徑,如: jmeter -n -t D:\E\02_Test\A2_效能測試\JMeter\JMeter指令碼\product_select.jmx -l D:\E\02_Test\A2_效能測試\JMeter\JMeter測試結果\product_select_20160311001.jtl
product_select_20160311001.jtl是剛才執行測試的結果,使用JMeter圖形介面開啟即可看到檢視詳細報告內容,如下圖:
遠端啟動JMeter
JMeter客戶端和JMeter遠端伺服器安裝好JMeter,並配置JVM環境變數,使用java -version命令來檢測JDK是否安裝成功,如下圖:
JMeter客戶端和JMeter遠端伺服器網路環境能夠互通,使用ping命令來檢測,小編這裡客戶端IP為:192.168.20.242,服務端為:192.168.5.90,檢測結果如下:
在JMeter遠端伺服器上執行JMETER_HOME/bin/jmeter-server (UNIX)或者JMETER_HOME/bin/jmeter-server.bat(Windows)指令碼,小編這裡是UNIX伺服器,使用命令:./jmeter-server -Djava.rmi.server.hostname=192.168.5.90,如下圖:
在JMeter客戶端上修改/bin/jmeter.properties檔案,找到屬性"remote_hosts",使用JMeter遠端伺服器的IP地址作為其屬性值。可以新增多個伺服器的IP地址,以逗號作為分隔。
例如:
#remote_hosts=127.0.0.1
remote_hosts=192.168.5.90:1099,192.168.5.91:1099,192.168.5.92:1099
在JMeter客戶端上遠端啟動,JMeter客戶端會自動向JMeter遠端伺服器上分發測試計劃,可以檢視遠端伺服器執行情況,執行完成後在客戶端可以檢視具體執行結果,如下圖:
注意事項
非GUI模式下執行JMeter和遠端啟動JMeter都要先配置好JMeter測試策略