5 步輕松上手,教你從 0 到 1 落地 Jmeter 接口自動化腳本!

2024年2月6日 21点热度 0人点赞

Jmeter是進行接口測試的一款非常主流的工具,但絕大部分測試工程師,對於Jmeter接口測試腳本整理都是一知半解的。今天這篇文章,就以一個金融項目中接口為例,通過簡單5步,教大傢如何0代碼編寫Jmeter接口自動化腳本!

0、金融項目接口

1、登錄接口信息

2、新增投資項目接口信息

接口說明:

請求頭中Authorization傳值Bearer Token,Token是登錄成功後響應結果中獲取。

請求參數中member_id,是指登錄賬號的id,也是從登錄成功後響應結果中獲取。

1、數據驅動ddt

一個接口,需要覆蓋正常、異常多種情況的用例數據進行測試,從而得到不同的輸出結果。你是怎麼測試呢?是不是每測試一種情況就修改一次傳參的數據呢?如果不想每次都修改請求,但是又要覆蓋到多組測試數據的測試執行。Jmeter有提供很好的解決方案:通過CSV文件數據配置 循環控制器這2個元件實現。

1) 以登錄接口為例,先把需測試的各種正常/異常測試數據,整理到CSV文件中,如下:

2)打開Jmeter, 新建線程組,添加HTTP請求頭管理器並設置好請求頭信息。右鍵邏輯控制器-循環控制器,循環次數設置為CSV文件中的需執行的用例條數。

3)在循環控制器下,添加配置元件-CSV數據文件配置,用於讀取CSV文件中的每條測試用例數據,配置如下:

4)在循環控制器下,添加HTTP請求,修改名稱,登錄請求設置如下:

5)點擊運行,可以看到依次執行CSV用例中的每條用例,並輸出對應結果

2、測試結果校驗

以上登錄的每條用例執行完後,需要去確認執行結果的正確性!你是人工點開每一條用例的接口返回結果,憑肉眼判斷嗎?那樣就太費時間了,Jmeter有提供很多種自動判斷用例執行是否符合預期的機制— 斷言機制。Jmeter可通過: 響應斷言 CSV數據驅動 實現。

1)右鍵循環控制器-斷言-添加響應斷言,並設置斷言內容如下

2) 點擊運行,可以看到執行結果。請求顯示綠色--表示斷言成功;請求顯示紅色-表示斷言失敗,用例執行失敗。點開可以看到斷言失敗的原因。

3、接口依賴處理

如果我們要再去測試“添加投資項目”這個接口,跟登錄一樣,測試數據準備到CSV文件中,然後也是自動循環去讀取CSV文件中測試用例,去執行!

但會存在問題: 添加投資項目這個接口要想執行成功,必須依賴到登錄狀態,需要從登錄成功的響應結果中提取需要的token、用戶id值。

如何解決? 將登錄接口作為前置操作,登錄隻執行1次,然後通過後置處理器-json提取器獲取到token、id的值;再傳遞給添加投資項目的這個接口使用。

1)腳本結構如下,新建登錄請求作為前置,在登錄請求下添加json提取器,頁面設置如下:

2)將提取到的token值,傳遞到下個接口的請求頭使用,在添加投資項目接口下方添加HTTP信息頭管理器,引用user_token變量的值

3)將提取到的用戶id,傳遞到下個接口的請求參數中,這裡分2步處理,首先在CSV文件中的請求列數據,設置${user_id},如下:

然後在添加投資項目接口的http請求頁面,引用從CSV文件中讀取的req_data變量值時,因為該值中嵌套了${user_id}變量值,因此這裡要用Jmeter自帶的__eval函數處理下。

4)點擊運行,可以看到CSV中3條用例都執行成功。

4、公共數據管理

很多接口請求中,會存在部分相同的請求信息,例如環境地址。測試環境/預發佈環境/發佈環境,服務器地址是不一樣的。對於測試來說,如果需要在不同環境下,執行同一套接口腳本時,得一個個接口去修改服務器地址,這是很麻煩的。那麼在Jmeter中,可以通過:自定義變量 實現高效處理。

1)新建配置元件-用戶定義的變量,設置host、port2個變量,用來保存當前測試環境地址信息

2)然後在自動化腳本的請求位置,將這2個變量進行引用,例如登錄接口設置如下:

這樣,如果下次需要切換到預發佈環境進行測試,隻需要修改用戶定義變量中的環境地址信息即可。

5、多接口批量執行

在實際工作中,如果一個項目比較大,腳本編寫工作是需要協同完成的。比如說你負責ABC模塊接口、他負責DEF模塊接口,最後如果要整合所有的接口進行批量執行怎麼處理呢?可以通過Jmeter的測試片段,分模塊管理接口腳本。一般可以一個接口一個測試片段。測試片段本身是不能直接運行的,需要通過模塊控制器或include控制器才能執行。

1)右鍵新建測試片段,將登錄接口的多用例執行腳本,保存在測試片段下;同理添加投資項目接口的多用例執行腳本。如下:

2)新建線程組,在線程組下添加模塊控制器,選擇需要執行的測試片段;

3)點擊運行,可以看到多接口批量執行結果

總結

通過以上5步,就可以0代碼實現Jmeter自動化腳本的基礎開發。當然實際工作中的項目會存在很多需處理的業務場景,比如文件上傳處理、關聯到數據庫的接口處理、接口加密傳參處理、數據庫斷言處理等等,那麼就需要大傢具備更高階技術、甚至是自己寫代碼去解決。

學無止境,行以致遠。