使用JMeter測試HTTP接口的方法


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

 

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


線程組有三個屬性:

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

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

最簡單的參數設置方法,是直接將請求地址填在路徑里,如下:

也可以將參數分開填寫到對應位置(分開填寫的好處是后期可以動態配置),如下:


3、添加查看結果頁面,用來查看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。如下:

(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。如下:

傳參時,還需要指定傳參格式,即請求頭中的參數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信息頭管理”。添加一對健值。如下圖:

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

 

5、動態請求參數的設置。

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

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

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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM