天天看點

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

作者:程式員月下

一、背景

通常來說,進行接口測試,開發會提供對應的接口文檔給到測試,但也有例外。開發無接口文檔,但上司又需要你對剛開發的軟體,進行接口測試、接口自動化測試、甚至是性能測試。這個時候作為專業測試應該怎麼辦?

通過抓包工具擷取接口資訊,利用工具調通接口,接口資訊不明确跟開發溝通,再進行接口測試,完美解決!

二、抓包擷取接口資訊

主流的抓包工具有Fiddler、Charles,如果是網站項目可用浏覽器F12開發者工具。以下通過電商項目給大家示範,如何通過F12抓取接口資訊。

1、打開對應電商網站,按鍵盤F12調出開發者視窗,點選網絡視圖

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

清除: 在操作到需要的功能并記錄對應接口資訊前,在控制台視窗被記錄的前請求資訊,不需要的,可點選該圖示進行清除

持續記錄: 勾選後,請求清單不會在每次導航到新頁面時被清除。例如抓登入請求會跳轉到首頁,勾選後抓取到的登入資訊不會清除

2、進行功能操作,擷取對應接口資訊

按照業務流順序,這裡先抓取【注冊】接口資訊,頁面選擇賬号注冊,在頁面輸入使用者名及密碼,勾選同意,點選注冊,擷取到【注冊】接口資訊如下:

接口請求資訊包括:請求方式、請求位址、請求頭(重點關注Content-Type)、請求體

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

響應資訊為: 響應頭(注冊接口目前不需要關注,若是登入涉及session鑒權需關注)、響應體

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

3、并将抓取到的接口資訊整理到excel中作為用例,同時關注到資料庫表資訊用于接口測試驗證。

如下:

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

三、将抓取的接口,進行接口腳本設計及執行-Jmeter

主流接口工具和平台,例如Jmeter、postman、apifox、metersphere。

我們每抓取到一個接口的資訊,及時通過接口工具調通接口,有存在問題可速度跟開發溝通。以下Jmeter為例講解。

1、注冊接口

将抓取到的注冊接口請求位址、請求方式、請求頭、請求體填入Jmeter工具中,添加檢視結果樹後,點選運作,并檢視對應響應結果確定接口調通。

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

問題: 響應結果并未傳回如抓包得到的json格式資訊{"msg":"注冊成功","code":0},而是傳回xml

解決:

自行嘗試或問開發,需要在請求頭中添加如下字段:

Accept:application/json, text/javascript, /;

X-Requested-With:XMLHttpRequest

在Jmeter腳本中,添加HTTP資訊頭管理器,填入這2個字段資訊,點選運作,接口調通。同時優化excel接口用例資訊。

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

2、登入接口

進行的登入操作抓取到登入接口資訊後,如下:

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

問題:圖檔驗證碼怎麼處理?

解決:

  • 讓開發屏蔽掉驗證碼
  • 讓開發提供一個萬能驗證碼
  • 寫代碼處理驗證碼(擷取到驗證碼圖檔,然後調用圖檔識别技術的平台)

這裡,我們找開發幫忙提供了一個萬能驗證碼LM23,并在Jmeter操作如下:

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

3、購物車接口

在商品詳情頁進行加入購物車操作,将抓取到接口資訊,儲存在excel中:

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

問題:購物車接口,需要依賴到登入狀态,需登入鑒權,Jmeter怎麼處理?

觀察抓取到接口資訊,可以看到購物車接口請求頭中有攜帶Cookie資訊:uuid、PHPSESSID;PHPSESSID是登入成功後,由伺服器生成,并傳回在響應頭Set-Cookie中。

解決:添加HTTP Cookie 管理器,jmeter自動處理!

通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!
通過電商項目,詳解抓包到接口測試,附驗證碼 +cookie 問題處理!

四、總結

以上的實操隻是小試牛刀,抓包并進行接口測試,并不是簡單地把抓取到的接口資訊複制到工具中就能運作成功!在接口腳本設計過程中,會碰到各種各樣的問題,像圖檔驗證碼處理、短信驗證碼處理、檔案上傳操作、關聯接口提取資料、唯一參數值問題等等;而這些問題都是伴随着你真正的項目去實踐的!

另外,工作中完整的接口測試,是從接口需求-->接口用例設計-->接口腳本設計-->接口執行,定位bug并跟蹤-->接口報告總結。而不僅僅隻是某個工具Jmeter或postman的操作!

學無止境,行以緻遠。

繼續閱讀