fbpx

Linux 透過 Command Line 執行 JMeter 進行壓力測試

jmeterJMeter 算是非常老字號的 HTTP 壓力測試工具,最大的好處就是有界面可以規劃測試腳本,雖然這個採用骨灰級 Java Swin 寫出來的界面真的很古老而且很醜,以現在 UX 業界水準當然稱不上好用,但是其功能還算堪用,要用免費且 Open Source 總不能要求太多。往往在測試的過程中要進行大量連線的壓力測試,若是碰到測試網路與機器效能等等的問題,就需要在遠端機房內進行測試,或者進行分散併發測試 (就是 DDOS 囉),這些 JMeter 也都有支援。

安裝 JMeter 與 Command Line 執行

今天並沒有要介紹如何使用 JMeter,只簡單說明在遠端 Linux 系統中如何透過命令列執行測試腳本。一開始我們先安裝 JMeter,Ubuntu 安裝方式如下:

sudo apt install jmeter

CentOS 或者您想安裝最新的版本可以到 Apache JMeter 下載,下載後直接解壓所即可,目前的最新版是 2.11 安裝命令如下:

wget http://ftp.twaren.net/Unix/Web/apache//jmeter/binaries/apache-jmeter-2.11.tgz

tar -zxvf apache-jmeter-2.11.tgz

cd apache-jmeter-2.11/bin

jmeter

JMeter 是用 Java 寫的,如果沒有安裝 Java 執行會出現「java: command not found」,趕快透過 apt 或 yum 裝一下 Java 就可以囉。

要用 Command Line 執行之前,我們必須將專案另存為 .jmx 檔案,如此就能夠透過下命令執行測試囉。

jmeter -n -t your-project.jmx -l report.xml

但執行的過程中我們只會看到以下畫面,並不會顯示任何執行資訊或狀態,實在不方便。

Created the tree successfully using your-project.jmx
Starting the test @ Thu Oct 09 22:11:39 CST 2014 (1412849499857)
Waiting for possible shutdown message on port 4445
Tidying up ...    @ Thu Oct 09 22:12:14 CST 2014 (1412849534881)
... end of run

接下來我們需要修改 Jmeter 設定,好讓我們測試時可以像 UI 一樣有即時的報表可以參考。

修改 JMeter 參數即時顯示測試狀態

修改 jmeter.properties 檔案

sudo vim /usr/share/jmeter/bin/jmeter.properties

取消註解以下參數:

# 直接取消註解打開
summariser.name=summary

# 設定多久要刷新畫面
summariser.interval=1

# 啟用 Log
summariser.log=true

# 把訊息輸出至 stdout
summariser.out=true

 

這樣就可以看到即時的統計結果囉,超簡單!

Creating summariser <summary>
Created the tree successfully using your-project.jmx
Starting the test @ Thu Oct 09 23:38:55 CST 2014 (1412851135452)
Waiting for possible shutdown message on port 4445
summary +      1 in     1s =    1.1/s Avg:   896 Min:   896 Max:   896 Err:     0 (0.00%) Active: 100 Started: 100 Finished: 0
summary +    799 in    30s =   26.6/s Avg:   606 Min:     0 Max:  4633 Err:   209 (26.16%) Active: 0 Started: 100 Finished: 100
summary =    800 in    30s =   26.7/s Avg:   607 Min:     0 Max:  4633 Err:   209 (26.12%)
Tidying up ...    @ Thu Oct 09 18:39:29 CST 2014 (1412851169392)
... end of run

發佈留言