介面測試中的介面到底是什麼
- 2022 年 8 月 9 日
- 筆記
介面測試中的介面到底是什麼
1
先看一道題。請找出以下可以被成為介面的選項:
- USB
- 水龍頭
- 用戶介面 UI
- 函數
- //www.baidu.com
- //api.github.com
2
介面的英文是 interface。
interface的中文譯名為 「介面」 或 「介面」。當介面是 interface 的譯名時,介面是用於溝通的中介物的抽象化概念。
不同的事物之間很難有辦法進行溝通交流,所以才有牛頭不對馬嘴的說法。電腦要想獲取手機裡面的數據,最簡單的辦法就是使用一個適配器把二者匹配起來,這個東西就是 USB 介面。電腦要想通電,和電力系統進行交流,也需要用到介面,也就是電源適配器。水龍頭的作用也類似。
這類介面被稱為硬體介面。硬體介面(hardware interface)指的是兩個硬體設備之間的連接方式。硬體介面既包括物理上的介面,還包括邏輯上的數據傳送協議。
像 USB介面,3.5mm 耳機介面都屬於介面。有了介面,我們就可以對不同的物體進行適配,讓他們之間進行數據交互,達到溝通的目的。但是他們相互之間並不知道對方內部發生了什麼事情,他們在乎的是對方到底有沒有給我相應的數據和回饋。
耳機裡面播放出音樂,耳機是不會管電腦和手機是如何把一個 mp3 文件轉化成聲音的,更不會管 cpu 里有多少個電晶體在工作,不會管他們用的是 Intel 晶片還是 海思晶片。
同樣的,當我們去銀行取錢的時候,我們只需要提交申請單給銀行櫃員,然後銀行櫃員會給我們很多錢,至於工作人員在櫃檯後面執行了什麼操作,我們是不知道到的。
3
介面除了硬體介面,還有軟體介面。這也是我們日常主要理解的介面形式。軟體介面是涉及到軟體程式和其他系統進行交互溝通的時候的介面。它可以分為兩類:
- 用戶和程式之間的中介。
- 程式與程式之間的中介。
用戶和程式之間的中介被稱為用戶介面或者用戶介面,也就是 UI (User Interface)。所以 UI 也是一種介面。
程式與程式之間的中介被稱為應用程式編程介面,英文名是 API (Application Programming Interface)。
4
API(Application Programming Interface,應用程式編程介面)是一些預先定義的函數,目的是提供應用程式與開發人員基於某軟體或硬體得以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。
通過定義可以知道,API 還是繼承了介面定義的特性,提供的還是和其他系統進行溝通的能力,而不需要其他系統如何實現的。
用來描述 API 的功能和具體設置的說明被成為 API 文檔,也叫介面文檔。介面文檔通常包含以下部分:
- 介面名稱和作用
- 介面請求參數
- 介面返回數據
- 介面異常數據
5
如果你會一門程式語言,比如說 python。你總是會有機會接觸到第三方庫的 API 文檔,像我們經常使用的 requests 庫的 API 文檔就在這裡://2.python-requests.org//zh_CN/latest/api.html
文檔中關於 get 這個介面的文檔描述是這樣的:
- 介面名稱:get
- 介面作用:Sends a GET request
- 介面參數:url, params, **kwargs
- 介面返回數據:requests.Response
6
通過上面的例子我們知道一個介面對應的其實是一個函數,介面 get 指的就是 request.get(url, params=None, **kwargs) 這個函數。當然他也可以通過類的形式存在。
函數 f() 就像機器或黑箱,給予輸入值 x 便產生唯一輸出值 f(x) 。這和介面的解釋異曲同工。他們都只關心相互傳遞的數據,而不關心對方內部的實現過程。
當你寫了一個庫,裡面有很多函數,如果別人要使用你這個庫,但是看不懂每個函數內部是怎麼實現的。這個時候他就會去看你關於這個函數的說明。這個函數的作用是什麼,需要傳遞哪些參數,會返回什麼數據。對於使用這些函數的用戶來說 ,你的這些函數就是 API。
7
在工作中有一個非常有意思的現象,我們會把某個 URL 稱為介面。這是為什麼呢?
在進行 HTTP 請求的時候通常來說 URL 地址會和介面進行綁定。當訪問一個 URL 地址時,伺服器會執行對應的介面,也就是函數。
如果後端工程師提供一個函數給我,說這是你要的登錄介面,我肯定會很困惑,因為我不知道函數是什麼;但如果他給我一個 URL 地址,我就會非常開心。
因為函數對於非專業人員不友好,所以我們通常就用 URL 來代替函數來稱呼介面。當我們討論某個介面的時候,指的是 URL 後面綁定的函數。
我是九柄,公眾號【 九柄 】,分享軟體測試文章、面試、教程資料,歡迎來看看。