導語
“接口測試”一個讓人覺得非常高大上的名詞,特別是對於剛入門的測試同學而言。隨着測試技術不斷的深化,“接口測試”出現在我們視野中的頻次越來越高。那么接口測試到底是如何做的?接口測試的優勢又體現在哪些方面?
目錄
- 什么是接口?
- 什么是接口測試?
- 為什么要做接口測試?
- 接口測試與UI層測試的優劣勢對比
- 接口測試流程
什么是接口?
接口:外部系統與系統之間以及內部各個子系統之間的交互點 —百度百科
接口一般分為兩種:程序內部接口、系統對外接口。
1. 系統對外接口:例如最常見的系統對外接口—支付寶支付接口,很多app的支付功能都是調用支付寶的支付接口來進行支付,而該接口是支付寶系統提供給外部系統進行調用的
2. 程序內部接口:模塊與模塊之間的交互,比如淘寶商城要購買商品,下訂單前必須要先登錄,那么下訂單與登錄之間就是一個交互,這個交互就是一個接口,讓程序內部的其他模塊進行調用的
常見接口類型
1. HTTP 接口:通過HTTP協議來進行數據傳輸的接口
2. WebService 接口:通過soap協議進行數據傳輸的接口
3. 硬件接口:USB 、充電接口(此處不做討論)
前后端
做接口測試前,需要對兩個概念有所了解,前端和后端
1. 前端:通常為Web前端和app前端,前端的作用是為了展示數據內容,做簡單的數據校驗,比如我們看到的淘寶商城,那些商品信息,圖片展示等等
2. 后端:進行復雜計算的業務邏輯,功能實現,例如我們購買商品后的價格計算,優惠活動的使用,最終的支付,都是通過后端實現的
而前后端就是通過接口來進行交互的。
接口調用示意圖

什么是接口測試?
系統組件間接口測試。主要是檢測外部系統與系統之間,以及內部各個子系統之間的交互點,檢查數據的交換,傳遞,和控制管理過程,以及系統間的相互邏輯依賴關系,適用於為其他系統提供服務的底層框架系統和中心服務系統,主要測試這些系統對外部系統提供的接口,驗證其正確性與穩定性 —百度百科
接口測試就是通過測試不同輸入條件下,接口返回的結果是否與預期結果一致。
接口測試其實是一個非常簡單的過程,將接口的業務邏輯處理看成黑盒測試中的黑盒子,我們只需要考慮各種輸入條件下,會產生相應的什么結果。
接口測試就是黑盒測試
而我們知道黑盒測試又稱功能測試,那么接口測試與功能測試是不是一回事呢?答案是否定的,為什么呢?功能測試還包含了程序的UI層,包含了按鈕,UI交互等功能,而接口測試是沒有頁面操作的,只能通過調用接口來進行測試,只需要給接口傳遞相應的輸入條件,再檢查接口輸出的結果是否符合預期即可。某種程度講,接口測試比功能測試還要更簡單一些。
那么問題來了,如何調用接口來進行接口測試呢?
在回答這個問題前,我們需要知道接口的構成。HTTP協議的接口通常由以下幾部分構成:
- 接口地址
- 請求方法
- 輸入參數(輸入條件)
- 返回值結果(輸出條件)
由於沒有可操作的頁面,需要使用工具來進行接口測試,在后續的教程中,我會陸續詳細介紹接口測試的工具。
為什么要進行接口測試?
通過前文我們知道,程序的前端是用來展示數據以及簡單的數據檢驗的,而真正的業務邏輯核心是后端。
在傳統的功能測試中,如果前端工程師還沒有將前端工作做完,我們測試是無法展開測試工作的,另一方面,既然前端有校驗功能,那后端就有可能會遺漏該功能的數據校驗,如果用戶通過抓包繞過前端,直接進行后端操作,我們的程序就可能出現重大問題。
所以進行接口測試主要是因為:
- 盡早的測試介入,越早介入測試,發現的問題解決起來的成本是最低的。很多時候開發沒有將完整產品提交給測試時,測試時無法工作的,就會有大部分時間處於等待狀態,而接口測試可以在沒有前端界面下進行測試
- 后端的功能校驗在前端很難進行測試,因為前端已經有初步校驗控制,所以接口測試可以發現很多在前端無法發現的問題
- 提升測試效率,降低人工回歸測試的人力成本與時間成本,縮短測試周期
接口測試與UI層功能測試優劣勢對比
- 接口測試的介入時間更早,越早介入價值越高 (具體原因可以參考我另外一篇文章:[軟件測試流程-全程軟件測試])
- 接口測試的穩定性更高,變動少。接口測試通過,前端即時出現問題,解決起來也會非常快
- 接口測試發現缺陷后,解決的成本更低。越底層的缺陷,影響的面就越廣,一個底層缺陷可能引起N個表面的缺陷,那時候解決起來就會非常麻煩,而且還不一定能找到源頭缺陷
- 定位問題更加准確和快速。當我們接口測試通過后,在功能測試中出現問題,我們就可以更快速和准確的定位問題,因為已經排除掉接口層的干擾了。
接口測試流程
接口測試的原理跟功能測試是一樣的,那么它的流程跟功能測試流程其實也是基本一致的。
接口測試 不等於 接口測試工具使用
很多人認為會使用接口測試工具就是會接口測試。其實接口測試遠遠不止是工具的使用,SoapUI也好,Jmeter也好,這些工具都是我們在進行接口測試過程中能夠更方便的進行測試,而工具僅僅是工具,真正核心部分還是接口測試用例設計以及測試思維。那么當我們做接口測試時,到底需要做哪些方面的工作呢?
接口測試流程:
- 獲取需求文檔和接口文檔
- 通過對需求文檔分析出接口的業務邏輯要求以及業務邊界
- 通過對接口文檔分析出接口的技術指標(接口地址、請求方式、入參、出參)
- 接口測試用例設計(着重於接口測試數據准備)
- 使用接口測試工具進行接口測試
- 接口缺陷管理與跟蹤
- 接口自動化持續集成
在此次接口測試教程中,我會根據測試流程將接口測試進行詳細剖析,我們會講到常見傳輸協議、抓包工具的使用、接口返回數據解析、接口測試用例設計、接口測試工具使用、接口自動化測試框架等內容,大家可以持續關注這個系列,相信你一定會有收獲。
測試相關內容的交流,歡迎關注我的公眾號:山丘的測試之道

