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)點選執行,可以看到多介面批次執行結果
行動吧,在路上總比一直觀望的要好,未來的你肯定會感 謝現在拼搏的自己!如果想學習提升找不到資料,沒人答疑解惑時,請及時加入扣群:731789136,裡面有各種軟體測試+開發資料和技術可以一起交流學習哦。
最後感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,這些資料,對於【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,雖然不是什麼很值錢的東西,如果你用得到的話可以直接拿走: