接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
接口
應用(模塊)提供對外信息交互的功能。其實可以把被測模塊想象成一個黑盒,那么接口就是用來從盒子里拿東西(data)和放東西(data)。
接口測試驗證點
網上很多資料說驗證返回字段、驗證數據持久化內容等,那我的理解是:驗證接口的意圖!
接口不會平白無故的設計,接口的設計是為具體的業務功能服務,而我們對該接口的測試就是驗證該接口設計是否符合需求,能否正常為業務功能服務。
驗證方向:
-
接口設計文檔的參數和返回是否滿足前端GUI完成登錄操作(判斷登錄成功參數是否足夠、返回值是否滿足登錄操作后的展示頁面、參數和返回值的類型是否符合需要、返回值是否冗余等)
-
傳入參數后並接口處理完后,是否按需求正確的返回值(正確的傳參是否會返回相關返回值、返回的返回值類型和值是否符合接口設計文檔、可選參數傳入影響返回值、必傳參數和可選參數傳入符合文檔設計、返回內容是否過大等)
-
傳入參數后,接口處理符合需求(接口對應持久化的數據,是否持久化)
-
傳入參數后,接口處理過程中的性能指標符合需求[性能測試]
-
傳入參數后,接口處理惡意數據符合需求[安全測試]
大致就這么多,其實后兩者更多屬於接口性能和接口安全,但秉着測試左移和測試更高效化,應該在項目前期做更多類型的測試,確保大部分問題在項目前期就能得到解決(性能測試和安全測試建議在接口功能趨於穩定后再做)
接口測試原理
-
通過工具模擬調用方往被測應用發送請求報文
-
被測應用接受請求報文后,會對該報文處理然后再將響應報文發送給調用方(工具)
-
調用方(工具)接受響應報文、斷言響應報文和驗證處理結果
接口測試流程
跟功能測試一樣,需求討論=>評審需求=>確定需求=>產出接口協議文檔=>根據需求靜態測試接口文檔=>根據需求文檔和接口協議文檔設計測試用例(測試用例主要從業務場景、上述驗證點來考慮)=>評審用例=>冒煙測試接口=>接口測試=>輸出測試報告
接口測試價值
測試左移、降低成本、提高效率、提高集成測試版本質量、降低版本發布風險、加深測試人員對被測應用技術架構理解,更加全面測試被測應用
接口測試用例設計
接口測試用例設計除了日常的業務場景以外,還需考慮文中提到的接口測試驗證點。
-
輸入參數測試:針對輸入參數進行的測試,也可以說是假定接口參數的不正確性進行的測試,確保接口對任意類型的輸入都做了相應的處理:輸入參數合法(不合法)、輸入參數為空、為null、輸入參數超長、部分參數不傳等。
-
功能測試:接口是否滿足了所提供的功能,相當於正常情況測試,如果一個接口功能復雜時推薦對接口用例進行結構划分,這樣子用例覺有更好的可讀性和可維護性
-
邏輯測試:邏輯測試嚴格講應為單元測試,單元測試應保持內部邏輯的正確性,可單元測試和接口測試的界限並不是那么清楚,所以我們也可以從給出的設計文檔中考慮內部邏輯錯誤的分支情況和異常(利用傳入參數盡可能覆蓋代碼的各個分支和異常)
-
異常情況測試:接口實現是否對各種情況都進行了處理,接口輸入參數雖然合法,但是在接口實現中,也會出現異常,因為內部的異常不一定是輸入的數據造成的,而有可能是其他邏輯造成的,程序需要對任何異常都進行處理
當然接口測試用例也應該和普通的功能測試用例一樣具有:有效性、可理解性、清晰性、可維護性、可重現性
接下來,會講講如何開始做接口測試,敬請期待……