API全稱Application Programming Interface,這裏面咱們其實不用去關注AP,只須要I上就能夠。一個API就是一個Interface。咱們無時不刻不在使用interfaces。咱們乘坐電梯裏面的按鈕是一個interface。咱們開車一個踩油門它也是一個interface。咱們計算機操做系統也是有不少的接口。(這是目前我的找到比較好理解的一段解釋)前端
接口通常分爲兩種:java
1.程序內部的接口web
2.系統對外的接口數據庫
系統對外的接口:好比你要從別的網站或服務器上獲取資源或信息,別人確定不會把數據庫共享給你,他只能給你提供一個他們寫好的方法來獲取數據,你引用他提供的接口就能使用他寫好的方法,從而達到數據共享的目的。json
程序內部的接口:方法與方法之間,模塊與模塊之間的交互,程序內部拋出的接口,好比bbs系統,有登陸模塊、發帖模塊等等,那你要發帖就必須先登陸,那麼這兩個模塊就得有交互,它就會拋出一個接口,供內部系統進行調用。後端
接口的分類:api
1.webservice接口 安全
2.http api接口服務器
webService接口是走soap協議經過http傳輸,請求報文和返回報文都是xml格式的,咱們在測試的時候都用經過工具才能進行調用,測試。架構
http api接口是走http協議,經過路徑來區分調用的方法,請求報文都是key-value形式的,返回報文通常都是json串,有get和post等方法,這也是最經常使用的兩種請求方式。
json是一種通用的數據類型,全部的語言都認識它。(json的本質是字符串,他與其餘語言無關,只是能夠通過稍稍加工能夠轉換成其餘語言的數據類型,好比能夠轉換成Python中的字典,key-value的形式,能夠轉換成JavaScript中的原生對象,能夠轉換成java中的 類對象等。)
接口你能夠簡單的理解他就是URL,工做原理就會說URL經過get或者post請求像服務器發送一些東西,而後獲得一些相應的返回值,本質就是數據的傳輸與接收。
接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。
--百度百科
簡答的說就是經過URL像服務器或者其餘模塊等,傳輸咱們想傳輸的數據,而後看看他們返回的是否是咱們預期想要的。
①.越底層發現bug,它的修復成本是越低的。
②.前端隨便變,接口測好了,後端不用變,先後端是兩撥人開發的。
③.檢查系統的安全性、穩定性,前端傳參不可信,好比京東購物,前端價格不可能傳入-1元,可是經過接口能夠傳入-1元。(測邊界值)
④.現在的系統複雜度不斷上升,傳統的測試方法成本急劇增長且測試效率大幅降低,接口測試能夠提供這種狀況下的解決方案。
⑤. 接口測試相對容易實現自動化持續集成,且相對UI自動化也比較穩定,能夠減小人工迴歸測試人力成本與時間,縮短測試周期,支持後端快速發版需求。接口持續集成是爲何能低成本高收益的根源。
⑥. 如今不少系統先後端架構是分離的,從安全層面來講:
(1)、只依賴前端進行限制已經徹底不能知足系統的安全要求(繞過前面實在太容易), 須要後端一樣進行控制,在這種狀況下就須要從接口層面進行驗證。
(2)、先後端傳輸、日誌打印等信息是否加密傳輸也是須要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。