天天看點

使用JMeter測試HTTP接口的方法

  JMeter是Apache出的一款用JAVA開發的性能測試工具,可以友善的對各種接口進行測試。下面就來看一下,使用JMeter對HTTP接口進行測試的方法。

1、添加線程組,用來控制執行過程。右鍵“測試計劃”→“添加”→“Threads(Users)”→“線程組”。

使用JMeter測試HTTP接口的方法

線程組有三個屬性:

線程數:啟動的線程數量。

Ramp-Up Period:指定時間啟動所有線程。會用相等間隔啟動所有線程。

循環次數:線程循環執行的次數。

舉個栗子:設定線程數=2、Ramp-Up Reriod=10、循環次數=3,那麼流程就是,啟動1個線程,隔5秒再啟動第2個線程,每個線程啟動後執行3次。

2、添加HTTP請求,用來設定具體HTTP請求的内容。右鍵“線程組”→“添加”→“Sampler”→“HTTP請求”。

以這個請求位址為例:http://127.0.0.1:18080/getUserInfo

最簡單的參數設定方法,是直接将請求位址填在路徑裡,如下:

使用JMeter測試HTTP接口的方法
也可以将參數分開填寫到對應位置(分開填寫的好處是後期可以動态配置),如下:
使用JMeter測試HTTP接口的方法

3、添加檢視結果頁面,用來檢視HTTP請求的結果。右鍵“線程組”→“添加”→“監聽器”→“察看結果樹”。

請求過後,可以在取樣器結果、請求、響應資料三個頁面中看到請求的所有資訊,包括請求位址、參數、傳回值、耗時等等。如下:

使用JMeter測試HTTP接口的方法

4、請求參數的設定。

剛的HTTP請求,并沒有傳參,但通常的接口請求都會帶有參數,那麼在哪裡添加呢?就是在第2步的HTTP請求頁面中的Parameters、BodyData。

接口參數接收方式通常有2種,對應傳參方式如下:

(1)鍵值對的方式。

1     public Map<String, Object> getUserInfo(@RequestParam String userId) {
2         return getUserInfo(userId);
3     }      

對應JMeter的傳參方式Parameters。如下:

使用JMeter測試HTTP接口的方法

(2)Json的方式。

1     public Map<String, Object> getUserInfo(@RequestBody UserInfo userInfo) {
2         return getUserInfo(userId);
3     }
4 
5     @Data
6     public class UserInfo {
7         private String userId;
8     }      

對應JMeter傳參方式Body Data。如下:

使用JMeter測試HTTP接口的方法

傳參時,還需要指定傳參格式,即請求頭中的參數Content-Type。

(1)使用Parameters時,Content-Type傳:application/x-www-from-urlencoded。

(2)使用Body Data時,Content-Type傳:application/json。

Content-Type的預設值為application/x-www-from-urlencoded,是以當使用Parameters時可以不傳。

設定Content-Type的方法。右鍵“HTTP請求”→“添加”→“配置元件”→“HTTP資訊頭管理”。添加一對健值。如下圖:

使用JMeter測試HTTP接口的方法

這樣設定的參數值固定的,有時候我們可能希望參數是動态的,可以通過下面這種方式。

5、動态請求參數的設定。

(1)動态參數使用到Bean Shell PreProcessor。右鍵“HTTP請求”→“添加”→“前置處理”→“Bean Shell PreProcessor”。

使用JMeter測試HTTP接口的方法

在Script裡,根據你需要的規則生成參數的值,并使用vars.put(String key,String value)把資料存到JMeter變量中。如上圖。

(2)然後在HTTP請求頁中以 ${key} 的格式,引用對應的變量。如下圖:

使用JMeter測試HTTP接口的方法

  以上就是JMeter調用接口的方法,是不是很簡單,很友善。當然還有很多進階的用法,有興趣,可以慢慢探索。

本文來自部落格園,作者:PC君,轉載請注明原文連結:https://www.cnblogs.com/pcheng/p/13055234.html

繼續閱讀