一、為什麼要做介面測試
在日常開發過程中,有人做前端開發,有人負責後端開發。介面就是連線前後臺,由於前端開發和後端開發的速度可能不一樣,例如後端開發好了,但是前端沒有開發。那麼我們是不是就不需要測試呢?一般我們大部分人都是做功能測試,很多是介面的功能測試。如果你理解了介面測試,那麼你就可以針對介面進行測試。
二、什麼是介面、什麼是介面測試
介面:主要是子模組或者子系統間互動並相互作用的部分。
這裡說的介面是廣義的,客戶端與後臺服務間的協議;外掛間通訊的介面;模組間的介面;再小到一個類提供的方法;都可以理解為介面。
介面測試:是指標對模組或系統間介面進行的測試。
三、介面測試流程
需求討論,需求評審,場景設計,編寫用列,準備資料,執行測試
四、介面測試用例設計
1介面測試的用例設計,主要從輸入和介面處理兩方面考慮:
1)針對輸入,可按照引數型別進行設計;
2)針對介面處理,可按照邏輯進行用例設計;
3)針對輸出,可根據結果進行分析設計。
2針對輸入設計
對於介面來說,輸入就是入參。常見引數型別有:
(1)數值型(int,long,float,double等)
(2)字串型別
(3)陣列或連結串列
(4)結構體
五.怎麼進行介面測試
通過工具模擬客戶端向服務端傳送請求並接受伺服器返回的資料來對介面的功能,邏輯業務,異常,安全進行測試
功能測試:測試這個介面的功能是否實現,並且測試這個介面是否按照介面文件來進行開發的(比如說介面文件規定了一些關鍵字,而開大的時候把關鍵字改成了其他的關鍵字,因為在整個專案週期,並不只有一個開發而是有多個,所以可能因為在開發過程中因為關鍵字不一樣導致某些開發的功能異常,還有自動化指令碼也會發生異常)
邏輯業務,主要指的是一些邏輯業務依賴關係(比如支付寶提交訂單的時候要保證你是在登入的情況下,如果你沒有登入而提交成功了,這就是異常,可以修改請求的cookie來測試)
異常測試:引數異常:關鍵字引數(應用其他的關鍵字替換進行測試)、引數為空、引數多少(通過新增引數增添個數),引數錯誤。資料異常:關鍵字資料(填入的資料用其他的資料語言的資料替用)、資料長度、資料為空、資料錯誤。
由於我們專案前後端呼叫主要是基於http協議的介面,所以測試介面時主要是通過工具或程式碼模擬http請求的傳送與接收。工具有很多如:apipost、jmeter、java+httpclient、robotframework+httplibrary等。
–也可以用 介面自動化來實現,就是用程式碼實現,框架和UI自動化差不多,傳送請求用斷言來判斷。
六、介面測試需要用到的工具
介面測試常用的工具,fiddler抓取請求,apipost模擬客戶端通過對fiddler抓取的請求修改併傳送到服務端並接收伺服器返回的資料及異常來進行驗證介面。工具不是固定的,需要根據專案來進行選擇。
七、介面測試發現的典型問題
介面測試經常遇到的bug和問題,如下:
(1)傳入引數處理不當,導致程式crash;
(2)型別溢位,導致資料讀出和寫入不一致;
(3)因物件許可權未進行校驗,可以訪問其他使用者敏感資訊;
(4)狀態處理不當,導致邏輯出現錯亂;
(5)邏輯校驗不完善,可利用漏洞獲取非正當利益等。
工具下載連結:https://www.apipost.cn
本作品採用《CC 協議》,轉載必須註明作者和本文連結