close

由於要幫公司網站作壓力測試,透過顧問推薦,認識JMeter這個免費的壓力測試軟體~(我用的是5.3版)

 

因為網站連線不太穩,只要太多人連線就會掛點,
所以只能挑深夜離峰時間來作測試

但我又不想熬夜等到離峰時間來啟動軟體
(而且為收集完整數據,Boss說要連測兩個禮拜,QQ)

找了網路上的文章,大多都是介紹計時器Timer(thread和thread之間的間隔)功能

但我需要的是時間到了就自動啟動,比較偏向定時器或排程的功能

可能定時器功能太簡單而沒人寫吧... 筆記一下這次的摸索經驗,提供未來參考。

 

主要方法有兩種,一種是用JMeter內建的定時器(Specify Thread lifetime),讓程式延遲一段時間再執行,這種比較初階。

一種是搭配Windows的工作排程器,設定排程時間(例如每天晚上11點),自動啟動程式。

 

其他功能可參考使用手冊:https://jmeter.apache.org/usermanual/index.html

1.至JMeter官網下載 JMeter軟體(需要Java 8以上版本環境才能執行) https://jmeter.apache.org/download_jmeter.cgi

2.解壓縮後,點選apache-jmeter-5.3\bin 資料夾中的 jmeter.bat 檔案,可開啟JMeter程式

3.新增測試計畫(Test plan)

4.於測試計畫(Test plan)按右鍵,新增一個執行序群組

 

[ 第一種,JMeter內建的定時器(Specify Thread lifetime)]

1.在執行序群組(Thread group)標題點一下左鍵,右邊視窗會出現群組資訊

勾選最下方的「Specify Thread lifetime」,有「期間(Duration)」&「延遲(Startup delay)」兩個值可設定,皆是以秒為單位,

(有的JMeter版本有開始&結束時間欄位可填,但5.3版只有「期間」一個欄位...所以一開始摸索很久,加上中譯版文字跟英文有差異,省略「秒數」字樣,後來切換回英文版才看懂)

例如,要設定半小時後啟動,則可於「延遲(Startup delay)」欄位輸入 1800(秒)

由於「期間(Duration)」欄位為必填,為了避免執行到一半被中斷,我通常會將值設大一些。

image

 

* 測試發現,若「期間(Duration)」設定的秒數時間到時,即使thread還沒跑完,也會自動停止。

* 若有兩個以上的執行序群組(Thread group),則只要在第一個執行序群組(Thread group)設定即可,後面的會依序執行

* 承上,經測試,若「期間(Duration)」欄位設的值很大,第一個執行序群組(Thread group)只要執行完,仍會自動執行第二個群組,不會等到「期間(Duration)」的秒數到了、才執行下一個群組。

 

 

如果覺得第一種方法,每天都要按一下,好麻煩,那麼可以參考第二種:

[ 第二種,搭配Windows內建的工作排程器 ]

1.開啟工作排程器後,點選建立基本工作

image

 

2.設定觸發程序時間

image

3.執行動作,選擇「啟動程式」

image

 

4.「程式或指令碼」欄位,填寫jmeter.bat的所在的路徑,

「新增引數」欄位,填寫呼叫啟動 JMeter test plan的命令,

image

jmx file 取代為 測試計畫的jmx檔名,後面的results file 和 path to web report folder 好像要不存在才不會出現執行錯誤。

如果

例如:我的測試計畫檔名為 test1120.jmx,希望將測試結果資料存成 test1120.csv 檔,測試結果圖表放在report資料夾

新增引數欄位就填寫: -n -t test1120.jmx -l test1120.csv -e -o report

「開始位置」則填測試計畫的jmx (test1120.jmx)所在路徑。例如: D:\

接著下一步,按完成,即可。

image

 

實測結果會像這樣,出現csv檔& report資料夾(裡面是html格式的圖表資料)

image

csv檔裡是彙整報告 ↓

image

 

 

arrow
arrow
    創作者介紹
    創作者 clover75 的頭像
    clover75

    種子種子快長大

    clover75 發表在 痞客邦 留言(0) 人氣()