當我們第一次開啟JMeter的時候,樹形標籤欄中只有一個“測試計劃”。
如果想要傳送一個最基礎的請求,需要操作如下步驟:
步驟1:建立一個測試計劃
開啟JMeter會預設有一個建立好的測試計劃。
一個測試計劃描述了一系列JMeter執行時要執行的步驟。一個完整的測試計劃包含一個或者多個執行緒組,邏輯控制器,取樣控制器,監聽器,定時器,斷言和配置元件。(測試計劃必須至少具有一個執行緒組)
提示:
如果需要建立一個新的測試計劃,點選“檔案” —> "新建",會開啟新的JMeter視窗。
(JMeter原則上是希望一個視窗只可以修改或編輯一個測試計劃)
步驟2:建立執行緒組
首先需要選中“測試計劃”右鍵 —> 新增 —> 執行緒(使用者) —> 執行緒組,如下圖:
說明:
setUp執行緒組
:線上程組之前執行。tearDown執行緒組
:線上程組之後執行。如果你還安裝了其他的元件和外掛的話,還會有一些其他的執行緒選項。
步驟3:建立取樣器
選中“執行緒組”右鍵 —> 新增 —> 取樣器 —> HTTP請求(以HTTP請求為例)
步驟4:建立監聽器
選中“執行緒組”右鍵 —> 新增 —> 監聽器 —> 察看結果樹
步驟5:完善資訊
開始編輯樹形標籤欄中每個標籤的內容。
(1)測試計劃標籤
- 名稱:預設為測試計劃,在實際的工作中,你需要修改成xxx專案的測試計劃。
- 註釋:就是對該測試專案的一些描述。
- 新增目錄或jar包到ClassPath:當我們需要引用一些外部jar包的時候,點選“瀏覽”進行新增。之後我們在寫測試指令碼的時候,就可以引用這些jar包中的內容了。
(其他的選項和內容我們之後再說明,這裡就先簡單介紹一些基本用法)
(2)執行緒組標籤
- 名稱:執行緒組就相當於一個流程,也就是定義該流程的名字,例如:訪問百度。
- 註釋:對該執行緒組的說明。
(其他內容保持預設即可)
(3)HTTP請求標籤
- 名稱:對於我們來說一個HTTP請求就相當於呼叫一個介面。一個流程(執行緒組)中可以有多個介面(HTTP請求)。換句話說,在一個流程中,要訪問多少個介面,就新增多少個HTTP請求。
該名稱可以修改成訪問介面的名字,例如:訪問百度。 - 註釋:對該HTTP請求的說明。
- 協議(必填):寫你需要使用的協議,如訪問百度網站需要使用
http協議
或者https
協議。 - 伺服器名稱或IP(必填):也就是需要請求伺服器的域名或者IP地址。例如訪問百度網站,填寫
www.baidu.com
。(注意此處不要加協議) - 埠號:有指定訪問的埠號就需要填寫,訪問百度網站則不需要填寫,會使用預設埠號,如80或者443。
- 方法:也就是選擇請求方式,我們訪問百度網站,選擇
GET
方式即可。
(其他內容保持預設即可)
填寫完如下圖:
步驟6:儲存測試計劃
此時就可以點選工具欄中的“啟動”按鈕,執行這個測試計劃。
點選"啟動"按鈕後,JMeter會彈出一個警告,如下圖:
提示你再測試計劃執行前,請先儲存該測試計劃。點選YES就會彈出儲存視窗。
我們就先把這個測試計劃儲存到桌面。
儲存完成後,JMeter會自動執行該測試計劃。
結果去察看結果樹中檢視。
步驟7:檢視結果
點選樹形標籤欄中測試計劃的“察看結果樹”來檢視該測試計劃的執行結果。
察看結果樹會顯示測試計劃中所有請求資料,請求資料中展示了每一個取樣器的結果、請求資訊和響應資訊。除此之外還可以檢視獲得響應所花費的時間,以及一些響應程式碼等資訊。這些內容可以幫助我們去分析指令碼是否存在問題。
察看結果樹內容如下圖:
察看結果樹可以說是JMeter中最常用的監聽器,通過它就可以看到請求的傳送和返回資訊。
總結:JMeter測試計劃要素
JMeter中一個指令碼就是一個測試計劃,也是一個管理單元。JMeter的請求模擬與併發數設定都在指令碼檔案中一起設定。
測試計劃要素如下:
- 要素一:指令碼中測試計劃只能有一個JMeter測試計劃。
同一時刻場景固然只能有一個,JMeter指令碼在GUI中顯示是樹型結構,測試計劃是根節點。根節點當然只能有一個。 - 要素二:測試計劃中至少要有一個執行緒組。
JMeter負載是通過執行緒組驅動的,所以計劃中至少要出現一個執行緒組。
JMeter測試計劃支援多個執行緒組,我們可以在計劃下面建立多個執行緒組,把不相關的業務分佈在不同的執行緒組。(也就是一個測試計劃中可以個多個流程,一個流程就代表一個執行緒組) - 要素三:至少要有一個取樣器。
測試的目的就是要模擬使用者請求,沒有取樣器指令碼就毫無意義。
也就是在一個流程下可以有多個請求,一個介面對應一個HTTP請求。 - 要素四:至少有一個監聽器。(收集結果)
測試結果用來衡量系統效能,我們需要從結果中分析系統效能。
說明
我們這裡只是簡單了介紹了JMeter傳送一個請求最基礎的一些步驟。
關於每個步驟中具體的操作和更多的細節都沒有展開說明,以後會逐一展開詳細說明,我們先對使用JMeter傳送請求有一個最基礎的認識就可以了。