elasticSearch load testing with Jmeter
對於網站效能很重要的一個指標就是:能夠承受多少壓力。評估你的網站使用者,並實際測試給出數據,就是壓力測試的目標
壓力測試工具 Jmeter
免費,好用,windows 也可以用,透過 GUI 撰寫測試腳本,利用 CLI 執行,產出美美的報告及數據結果,不用嗎?
當然要囉,安裝方法很簡單,搞定 Java SDK 再下載一個 windows 版本的 jmeter 解壓縮執行就行了
Java SDK
如果在 command line 下java -version
有出現版本資訊的話就行了,沒有的話就需要去官網下載,過程會需要加入它們的會員
Jmeter
到APACHE Jmeter download下載 Binaries 的 zip 檔案,拿回來後挑一個喜歡的地方放置解壓縮,解壓縮完成後在bin
目錄底下有一個jmeter.bat
,執行就會出現 jmeter GUI 了。
他同時會開啟一個 command line 視窗,不用關閉,在視窗中也會提醒你若需要跑測試,最好還是用 cli 的方式執行
撰寫測試腳本
透過 GUI 來撰寫測試腳本
TestPlan: Add -> Threads -> Thread Group
Number of Threads: 模擬多少個使用者的請求,ex:3000
Ramp-Up Period: 在幾秒內達到所設定的使用者人數,ex:10
Loop Count: 跑幾次,1
上面這段設定口語化一點就是:10 秒鐘內發出 3000 個請求,重複一次
Thread Group: Add -> Sampler -> HTTP Request
Name: 給這個 request 一個名字
Protocol: 通訊協定,這邊要輸入http
或其他的,沒輸入不能用的
Server Name or IP: 把主機 host 或 IP 填入
Port Number: elasticSearch 預設是 9200,照著填吧
在 HTTP Request 的部分,就看要測試甚麼路徑、Method,依序填入
HTTP Request: Add-> Config Element -> HTTP Header Manager
因為送的是 Json,所以加一個 Content-Type header 的資料在這邊
Thread Group: Add -> Listener -> Summary Report
於 GUI 內用來看測試結果的
這些東西都做完之後,可以點綠色三角形 ICON 跑測試,就可以在這邊看到測試結果,但建議還是先存檔,然後用 CLI 跑
指令備忘
透過 command line 到剛才安裝的目錄/bin 底下,於此處執行命令,可附加參數
-n: 不跑 GUI
-t: 執行計畫的檔案名稱, 附檔名為 jmx 的檔案
-l: 執行結果的儲存檔案名稱,副檔名為 jtl
-e: load testing 後產生報表 dashboard
-o: 輸出資料夾名稱
1 | jmeter -n -t test.jmx -l result.jtl -e -o report |