在平常開發過程當中,有人作前端開發,有人負責後端開發。接口就是鏈接先後臺,因爲前端開發和後端開發的速度可能不同,例如後端開發好了,可是前端沒有開發。那麼咱們是否是就不須要測試呢?通常咱們大部分人都是作功能測試,不少是界面的功能測試。若是你理解了接口測試,那麼你就能夠針對接口進行測試。前端
接口:主要是子模塊或者子系統間交互並相互做用的部分。
這裏說的接口是廣義的,客戶端與後臺服務間的協議。插件間通訊的接口、模塊間的接口、再小到一個類提供的方法,也均可以理解爲接口。
接口測試:是指針對模塊或系統間接口進行的測試。後端
需求討論,需求評審,場景設計,編寫用列,準備數據,執行測試。api
1接口測試的用例設計,主要從輸入和接口處理兩方面考慮:
1)針對輸入,可按照參數類型進行設計;
2)針對接口處理,可按照邏輯進行用例設計;
3)針對輸出,可根據結果進行分析設計。
2針對輸入設計
對於接口來講,輸入就是入參。常見參數類型有:
1)數值型(int,long,float,double等)
2)字符串類型
3)數組或鏈表
4)結構體數組
經過工具模擬客戶端向服務端發送請求並接受服務器返回的數據來對接口的功能,邏輯業務,異常,安全進行測試。
1)功能測試:測試這個接口的功能是否實現,而且測試這個接口是否按照接口文檔來進行開發的(好比說接口文檔規定了一些關鍵字,在開發過程當中可能出現由於關鍵字不同,致使某些開發的功能異常,還有自動化腳本也會發生異常)
2)邏輯業務,主要指的是一些邏輯業務依賴關係,好比支付寶提交訂單的時候要保證你是在登陸的狀況下,若是你沒有登陸而提交成功了,這就是異常,能夠修改請求的cookie來測試。
3)異常測試:參數異常:關鍵字參數(應用其餘的關鍵字替換進行測試)、參數爲空、參數多少(經過添加參數增添個數),參數錯誤。數據異常:關鍵字數據(填入的數據用其餘的數據語言的數據替用)、數據長度、數據爲空、數據錯誤。
因爲咱們項目先後端調用主要是基於http協議的接口,因此測試接口時主要是經過工具或代碼模擬http請求的發送與接收,包括自動化測試也是,比代碼實現效率高了很多。安全
接口測試經常使用的工具,國內作得比較好的有eolinker和apipost,流程基本都是發送請求後抓取記錄請求數據,而後把數據修改併發送到服務端並接收服務器返回的數據及異常來進行驗證接口。不一樣的是eolinker能夠直接導入整個接口項目,apipost須要用fiddler抓取請求數據,才能導入到工具上使用。工具不是固定的,其餘開源的工具也能夠試試。
Eolinker:www.eolinker.com
Apipost:www.apipost.cn服務器
接口測試常常遇到的bug和問題,以下:
1)傳入參數處理不當,致使程序crash;
2)類型溢出,致使數據讀出和寫入不一致;
3)因對象權限未進行校驗,能夠訪問其餘用戶敏感信息;
4)狀態處理不當,致使邏輯出現錯亂;
5)邏輯校驗不完善,可利用漏洞獲取非正當利益等。cookie