# Jmeter 學習 ###### tags: `學習筆記` 參考網址:https://igouist.github.io/post/2022/10/jmeter/ <h2>下載與開啟 JMeter</h2> JMeter 會需要 Java,如果還沒有 Java 的朋友可以先安裝一下:[下載 Windows 適用的 Java](https://www.java.com/zh-TW/download/ie_manual.jsp?locale=zh_TW) 首先讓我們到 [JMeter 官網](https://jmeter.apache.org/download_jmeter.cgi)的 Download 頁面 來下載,這邊我選擇 zip:  下載並解壓縮後,可以在 /bin 找到 jmeter.bat:  點開之後等待幾秒就會開啟 JMeter 的介面囉! --- <h2>更改語言</h2> Options >> Choose Languages >> Chinese(Traditional)  接著就會看到介面的大部分都變成中文囉 <h2>批次呼叫指定的 API</h2> <h3>建立 Thread Group</h3> 讓我們回到 JMeter,可以看到預設已經有一組測試計畫了  而我們將會在測試計畫中加入幾個元素,利用這些元素的組合來達到我們測試 API 的目標。 首先我們會需要一個執行緒群組(Thread Group),用來告訴 JMeter 我們打算如何規劃這些 Thread 的行動。可以當作我們正在寫一個迴圈,現在才正要訂迴圈的內容而已。 讓我們在預設的測試計畫上按右鍵,新增一個執行緒群組:  接著應該就會看到我們的測試計畫下多了一個群組,並且進入了該群組的設定畫面:  這邊要特別注意的是右側的「執行緒屬性」,我們白話一點來說明: * 執行緒數量:要打幾次 * 啟動延遲:幾秒內要打出去 * 迴圈次數:要打幾輪 例如說,我們想要模擬一百個使用者,在一秒內湧進網站,然後這狀況持續三輪,那就是: * 執行緒數量 = 100 * 啟動延遲 = 1 * 迴圈次數 = 3 這時候也就決定了這次測試的總數(執行緒數量 * 迴圈次數) 此外,迴圈次數下的「Same user on each iteration」會讓每次迴圈時都用同一批使用者,如果想要每次都模擬全新的使用者,例如把前面的例子改成三百名使用者,分三批湧進網站,這時候就可以取消勾選。 而定時器則是讓我們設定在執行前先延遲多久、執行多久後自動停止,這邊例子不會用到,就不開啟了。 現在我們已經把執行緒群組建好了,讓我們指派任務給這個群組吧! <h3>建立 Http Request</h3> 在執行緒群組上右鍵 > 新增,可以看到一排能指派給這群組的任務,其中「取樣」就是指我們這次的目標。這邊讓我們選擇「取樣 > HTTP 要求」:  接著可以看到 HTTP Request 的設定畫面,如同前面所說的,我們這次的目標是 GET (你的API),因此將 API 的資訊填到對應的欄位中:  在 API 的路由等資訊填好後,下方可以設定呼叫時要帶的參數,例如 Body 或上傳檔案等等 <h3>補充:設定 Http Request Header</h3> 很多時候我們要測試的 API 會要求在 Header 帶著 Token 才能使用,這邊也記錄一下掛 Header 的做法。 對執行緒群組右鍵 > 新增,選擇「設定元素」,裡面就會有一票設定值可以選,這邊選擇「HTTP 標頭管理員」:  例如我們要指定 Post 的 Body 為 Json,就可以掛一個 content-type = application/json:  <h3>建立 Listener</h3> 當我們的小弟們去解決了目標之後,就必須要回來報告給我們知道。這邊讓我們一樣在執行緒群組上右鍵新增,並且選擇「接聽(Listener)」,先嘗試建立一個「檢視結果樹」:  除了檢視結果樹以外也可以新增別的試試看,方便打完 API 之後確認,這邊再加上一個「Summary Report」,現在群組應該會長得像這樣:  等等打完之後再來確認這兩頁的內容。現在讓我們戳戳看 API 吧! <h3>開始執行測試</h3> 在最上面找到大家都很熟悉的綠色三角,戳下去就會執行這次的測試計畫,也就是照著剛剛的計畫烙一群小弟去揍 API 它旁邊還有發現不對勁時使用的 STOP,更旁邊的神奇掃把是用來在結束之後滅證用的清除結果:  --- # [JMeter]簡單的多人登入壓力測試 匯入CSV檔 參考網址:https://ithelp.ithome.com.tw/articles/10285287
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up