什么是接口
1.接口全稱為應用程序編程接口(Application Programming interface),簡稱為API
2.接口的本質是程序員所編寫的函數或方法,完成一定功能的代碼集合
3.人類與電腦等信息機器或人類與程序之間的接口稱為用戶界面
4.電腦等信息機器硬件組件間的接口叫硬件接口
5.電腦等信息機器軟件組件間的接口叫軟件接口
接口的優勢
1.規范性
接口就是規范,在整個系統設計中,涉及到很多層,為了使各個層之間調用透明化,你只需要知道接口,按照這個接口做你具體做的事情,就可以融入到整個系統中
例如:插頭、插座,有標准的規范告訴你插頭應該是幾個腳,插座是幾個孔等等,做插頭、插座的公司就是根據這個規范來做插頭、插座,而不需要做完一個插頭就跑遍全世界去試用一下這個插頭做的對不對。
2.擴展性
在項目開發過程中,由於客戶的需求經常發生變化,如果不采用接口,那么我們必須不停的改寫現有的業務代碼。
改寫代碼可能產生新的BUG,而且改寫代碼還會影響調用的業務的類,可能全部需要修改,影響系統本身的穩定性,到最后可能會出現代碼凌亂,不易讀懂,后接手的人無法讀懂代碼,系統維護工作越來越重,最終導致項目失敗。
接口在項目就是一個業務邏輯,面向接口編程就是先把客戶的業務提取出來,作為接口。業務具體實現通過該接口的實現類來完成的。
當客戶需求變化的時候,只需編寫該業務邏輯的新的實現類,不需要更改現有代碼,減少對系統的影響。最終讓項目具有更強大擴展性
常見的接口類型
接口是指外部系統與系統之間以及內部各子系統之間的交互點。
其中包括外部接口、內部接口
內部接口又包括上層服務與下層服務接口、同級接口
系統對外接口:比如你要從別的網站或服務器上獲取資源或信息,別人肯定不會把數據庫共享給你,它只能給你提供一個他們寫好的方法來獲取數據,你引用他提供的接口就可以使用它寫好的方法,從而達到數據共享的目的
程序的內部接口:方法與方法之間、模塊與模塊之間的交互,程序內部拋出的接口,比如TMOOC系統,有登錄模塊、我的課程等等,如果你要看我的課程必須先登錄,才可以觀看,這兩個模塊就得有交互,它就會拋出一個接口,供內部系統進行調用
常見的WEB接口有哪些
HTTP協議的接口、WEB SERVICE接口
HTTP接口是走HTTP協議,通過路徑來區分調用方法,請求的報文都是key = value的形式,返回的報文一般都是JSON串,有GET和POST等方法,這也是最常用的兩種請求方式。
WEB SERVICE接口是走SOAP協議通過HTTP傳輸,請求報文和返回的報文一般是xml格式,在測試過程中一般使用工具才能進行調用測試 -- 用的較少
程序中的接口 API
# Application Programming apitest 應用編程接口
# 接口本質上是程序開發的函數或方法,提供參數和返回值
# 定義函數: 三要素分別是函數名 參數表 返回值
# 定義一個add函數 -- 實現加法運算功能,最后返回運算結果
# 定義函數 add,a,b為形參(參數表)
def add(a,b): # 接口可以接收使用者提供的數據
c = a + b # 對這些數據進行處理,實現預定的功能
# c 為函數返回值
return c # 將結果返回給使用者
# 調用函數:
# 使用函數名,傳入參數,返回結果
add(1,2) # 結果為3
add(3,5) # 結果為8
# 注意:接口測試考慮是程序的輸入參數、輸出結果
接口的本質及其工作原理是什么
接口你可以簡單的理解他就是URL,工作原理就是說URL通過GET或POST請求向服務器中發送一些數據,然后得到一些相應的返回值,本質就是數據的傳輸與接收
請求模型:
說起來,怎么才能讓燈亮?一個燈頭接兩根線,一根線接火線,一根線接零線這時燈就亮了。反之,不接零線、火線燈就滅了。
其實接口呢,就把這些復雜的操作簡化了,讓你看到的就只有一個開關,而你來操作這個開關就好了。我們做接口測試也只需要測試這個開關就完成任務了,接口測試就是這么簡單。
當你訪問“http://127.0.0.1:8080/light?opt=open”,讓零線、火線連通,此時燈亮。
當你訪問“http://127.0.0.1:8080/light?opt=close”,讓零線、火線斷開,此時燈滅。
服務器和客戶端(機)
服務器是被測軟件或被測接口程序安裝的位置
使用linux操作系統作為服務器,會使用雲服務的形式存在
客戶端/機是個人計算機,通常將postman、fiddler、jmeter安裝在個人計算機上
請求和響應
客戶端要使用服務器上的軟件或接口程序,需要把要處理的數據發送給服務器,服務器上的接口程序會處理數據,然后把結果發給客戶端
客戶端發送數據給服務器的過程叫做請求
服務器把處理結果發送給客戶端的過程叫做響應
請求的組成部分
請求頭,包含許多有關客戶端環境和請求正文的有用信息,例如,請求頭可以聲明瀏覽器所用的語言,請求正文的長度,操作系統等
示例:
Accept:image/gif.image/jpeg./
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:windows NT5.0)
Accept-Encoding:gzip,deflate
請求體,也叫請求正文,對於post方法來講,要發給服務器的數據存放在請求體中
返回格式有,JSON格式,xml格式,html格式,二進制格式( 多數用於圖片 ),字符串格式
響應的組成部分
響應頭主要是指響應的附加信息,比如響應類型、響應狀態碼、cookie、session等
響應體也叫響應正文,相當於接口返回值,也是從測試人員測試時最關心的內容