接口:API(Application Programming Interface)即應用程序接口。你可以認為API是一個軟件組件,或是一個Web服務與外界進行交互的接口。
1.從功能層面上
可以將接口簡單理解為一個盒子。其上游負責輸入參數,下游負責輸出參數,類似於平時的黑盒測試對象,如圖1-1
圖1-1
例:
(1)在Chrome瀏覽器中輸入:https://www.v2ex.com/api/nodes/show.json?name=Python,按“Enter”鍵之后能看到如圖1-2所示的數據。
圖1-2
下面來分析這個過程:
在輸入URL地址並按Enter鍵后,頁面實際發送了一次請求接口。具體的要求是:接口地址(https://www.v2ex.com/api/nodes/show.json?)+ 請求參數及其值(name=Python)。后面這個“name=Python”就是輸入數據;返回的數據就是瀏覽器展示的一個JSON格式數據。至於這個數據是怎么來的,目前還是看不到的。所以這就像黑盒子一樣,輸入不同的數據會得到不同的返回結果。
*JSON(JavaScript Object Notation):是一種輕量級的數據交換格式,獨立於語言和平台。JSON解釋器和JSON庫支持不同的編程語言,是以{ }括起來的鍵值對數據。
JSON數據格式如下:
{“name”:“Michael","age":24}
2.從數據流層面來說
可以將接口理解為連接前端(Web頁面、APP等)和數據庫(Database)等后端的紐帶,用於二者之間傳遞數據、處理數據,如圖2-1
當下大部分的互聯網產品都采用前/后端分離的方式,即前端的表示層負責展示數據及其樣式,后端的數據層負責數據處理和存儲如圖2-2
(1)前端(前台):可以直觀看到和使用的內容都可以被視為前端。比如,Web頁面上一些可見的、可操作的界面。
(2)后端:不能被用戶可見的內容。其實,后端是一個編程上的概念,具體是指業務邏輯和數據處理。
(3)后台:通俗意義上是指管理系統,主要用來增加、刪除、修改、查詢數據,實際上是內部人士使用的一個Web系統。
3.從編程層面來說
可以將接口理解為業務邏輯處理方法的外在表現形式,如圖3-1,它可以是一個類,也可以是一個函數。
從數據流層面來理解,接口會按照“業務邏輯”處理數據。函數或方法按照邏輯返回不同的數據,這便是接口在不同參數下的不同返回信息。所以從“白盒操作”角度來看,接口測試是直接對函數或方法的代碼層進行測試。