---
# System prepended metadata

title: Jmeter 學習
tags: [學習筆記]

---

# 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：

![](https://i.imgur.com/Awj62zk.png)


下載並解壓縮後，可以在 /bin 找到 jmeter.bat：

![](https://i.imgur.com/zI4LlCI.png)

點開之後等待幾秒就會開啟 JMeter 的介面囉！


---
<h2>更改語言</h2>

Options >> Choose Languages >> Chinese(Traditional)

![](https://i.imgur.com/M9dTG7U.png)

接著就會看到介面的大部分都變成中文囉

<h2>批次呼叫指定的 API</h2>

<h3>建立 Thread Group</h3>


讓我們回到 JMeter，可以看到預設已經有一組測試計畫了

![](https://i.imgur.com/MxDPJLl.png)

而我們將會在測試計畫中加入幾個元素，利用這些元素的組合來達到我們測試 API 的目標。

首先我們會需要一個執行緒群組（Thread Group），用來告訴 JMeter 我們打算如何規劃這些 Thread 的行動。可以當作我們正在寫一個迴圈，現在才正要訂迴圈的內容而已。

讓我們在預設的測試計畫上按右鍵，新增一個執行緒群組：

![](https://i.imgur.com/zBt7Q9D.png)

接著應該就會看到我們的測試計畫下多了一個群組，並且進入了該群組的設定畫面：

![](https://i.imgur.com/CVv4go8.png)

這邊要特別注意的是右側的「執行緒屬性」，我們白話一點來說明：

* 執行緒數量：要打幾次
* 啟動延遲：幾秒內要打出去
* 迴圈次數：要打幾輪

例如說，我們想要模擬一百個使用者，在一秒內湧進網站，然後這狀況持續三輪，那就是：

* 執行緒數量 = 100
* 啟動延遲 = 1
* 迴圈次數 = 3

這時候也就決定了這次測試的總數（執行緒數量 * 迴圈次數）

此外，迴圈次數下的「Same user on each iteration」會讓每次迴圈時都用同一批使用者，如果想要每次都模擬全新的使用者，例如把前面的例子改成三百名使用者，分三批湧進網站，這時候就可以取消勾選。

而定時器則是讓我們設定在執行前先延遲多久、執行多久後自動停止，這邊例子不會用到，就不開啟了。

現在我們已經把執行緒群組建好了，讓我們指派任務給這個群組吧！

<h3>建立 Http Request</h3>


在執行緒群組上右鍵 > 新增，可以看到一排能指派給這群組的任務，其中「取樣」就是指我們這次的目標。這邊讓我們選擇「取樣 > HTTP 要求」：

![](https://i.imgur.com/OfLME2B.png)

接著可以看到 HTTP Request 的設定畫面，如同前面所說的，我們這次的目標是 GET (你的API)，因此將 API 的資訊填到對應的欄位中：

![](https://i.imgur.com/a7CgNOl.png)

在 API 的路由等資訊填好後，下方可以設定呼叫時要帶的參數，例如 Body 或上傳檔案等等

<h3>補充：設定 Http Request Header</h3>


很多時候我們要測試的 API 會要求在 Header 帶著 Token 才能使用，這邊也記錄一下掛 Header 的做法。

對執行緒群組右鍵 > 新增，選擇「設定元素」，裡面就會有一票設定值可以選，這邊選擇「HTTP 標頭管理員」：

![](https://i.imgur.com/xtI2cP3.png)

例如我們要指定 Post 的 Body 為 Json，就可以掛一個 content-type = application/json：

![](https://i.imgur.com/76Wmg6f.png)

<h3>建立 Listener</h3>


當我們的小弟們去解決了目標之後，就必須要回來報告給我們知道。這邊讓我們一樣在執行緒群組上右鍵新增，並且選擇「接聽（Listener）」，先嘗試建立一個「檢視結果樹」：

![](https://i.imgur.com/ZyU7DDB.png)

除了檢視結果樹以外也可以新增別的試試看，方便打完 API 之後確認，這邊再加上一個「Summary Report」，現在群組應該會長得像這樣：

![](https://i.imgur.com/UemRHgV.png)

等等打完之後再來確認這兩頁的內容。現在讓我們戳戳看 API 吧！

<h3>開始執行測試</h3>


在最上面找到大家都很熟悉的綠色三角，戳下去就會執行這次的測試計畫，也就是照著剛剛的計畫烙一群小弟去揍 API

它旁邊還有發現不對勁時使用的 STOP，更旁邊的神奇掃把是用來在結束之後滅證用的清除結果：

![](https://i.imgur.com/NQQ16Iu.png)



---
# [JMeter]簡單的多人登入壓力測試
匯入CSV檔

參考網址:https://ithelp.ithome.com.tw/articles/10285287