什么是介面
API介面是Application Programming Interface的簡稱,是一些預先定義的函式,包括介面地址,傳入引數和回傳引數,
可以簡單理解為,當需要訪問某些資料,正常狀態下傳入合格引數,會收到該范圍內的回傳引數,
場景:
在美團旅游頻道,用戶選定時間,地點后搜索航班,后臺會呼叫搜索介面傳入時間,地點等引數,接收航班類別,價格等引數,在前臺頁面上進行排列展示,同理,下單時會呼叫生單介面確認是否成單,支付時會呼叫支付介面完成交易,自動修改訂單狀態
什么是介面測驗
介面測驗主要用與外部系統與系統之間以及內部各個子系統之間的互動點,定義特定的互動點,然后通過這些互動點,通過一些特殊的規則也就是協議,來進行資料之間的互動,
一般我們用的多的是http協議的介面,webservice協議的介面,還有RPC(遠程程序呼叫協議的介面)
不管是哪種介面,其本質就是發送一個request,然后服務區回應后回傳一個response,我們對response進行分析,這即是介面測驗
介面的分類
-
webservice介面
webservice介面是走soap協議通過http傳輸,請求報文和回傳報文都是xml格式的,我們在測驗的時候都用通過工具才能進行呼叫,測驗,
-
http api介面
httpapi介面是走http協議,通過路徑來區分呼叫的方法,請求報文都是key-value形式的,回傳報文一般都是json串,有get和post等方法,這也是最常用的兩種請求方式
一個url就是一個介面:介面大郅會分為一下幾個部分:

請求協議:
http --- 普通的http請求
https --- 加密的http請求,傳輸資料更加安全
請求IP:就是指提供介面的系統所部署的服務器地址
請求埠:如果不填埠,默認是80,否則需要填寫埠號
介面路徑:指系統提供的介面在什么位置
介面引數:引數在介面路徑后,用“?”來表示路徑地址完了,剩下的都是引數了,用“&''來區分引數個數
為什么要做介面測驗
隨著系統越來越多,以及復雜性越來越高,為了保證系統的獨立性,也為了使業務更加的獨立,系統間的互動,越來越多的使用介面,這時候,為了保證資料的傳輸的準確性,介面測驗也應用而生了,資料的錯誤,有可能引起系統的重大BUG,
介面測驗的重要性
- 越底層發現bug,它的修復成本是越低的
- 前端隨便變,介面測好了,后端不用變,前后端是兩撥人開發的
- 檢查系統的安全性,穩定性,前端傳參不可信,比如京東購物,前端價格不可能傳入-1元,但是通過介面可以傳入-1元,
- 如京的系統復雜度不斷上升,傳統的測驗方法成本急劇增加且測驗效率大幅下降,介面測驗可以提供這種情況下的解決方案
- 介面測驗相對容易實作自動化持續集成,且相對UI自動化也比較穩定,可以減少人工回歸測驗人力成本與時間,縮短測驗周期,支持后端快速發版需求,介面持續集成是為什么能低成本高收益的根源,
- 現在很多系統前后端架構是分離的,從安全層面來說:
- 只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易),需要后端同樣進行限制,在這種情況下就需要從介面層面進行驗證
- 前后端傳輸,日志列印等資訊是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私資訊,如身份證,銀行卡等,
介面測驗作業流程
準備階段(80%)
拿到開發的介面檔案,并理解每個介面的引數及含義
了解被測驗系統的業務流程
撰寫介面測驗用例
執行階段(10%)
測驗用例/測驗場景執行
測驗資料/系統資料收集
分析階段(10%)
資料匯總/日志分析
測驗報告
介面測驗用例撰寫

介面測驗用例撰寫要點
測驗每個引數型別不合法的情況
測驗每個引數取值范圍不合法的情況
測驗引數為空的情況
測驗引數前后臺定義的一致性
測驗每個引數的上下限(這里很容易出現bug,如果程式處理不當,可能導致崩潰)
測驗每個引數取值不合理的情況
如果兩個請求有嚴格的先后順序,需要測驗調轉順序的情況
介面檔案
我們做介面測驗,需要開發提供介面檔案,最重要的有以下幾點:
- 被測介面的地址
- 介面引數,以及各個引數的說明
- 必要的http頭與http體(http頭是可以自定義的,可以用來校驗是否是自己人訪問)
- 介面回傳什么值,以及各個回傳值的說明
- 介面是干什么的
什么是JSON
Json是一種資料載體
互聯網本質就是資料傳輸,資料傳輸就需要資料載體,比如:頁面資訊就是存盤在HTML這種資料載體中


header和入參有什么關系?
首先,它們確實都是發送給服務器里的引數,但它們是有區別的,header里存放的引數一般存放的是一些校驗資訊,比如cookie,它是為了校驗這個請求是否有權限請求服務器,如果有,它才能請求服務器,然后把請求地址連同入參一起發送給服務器,然后服務器后根據地址和入參來回傳出參,也就是說,服務器是先接受header資訊進行判斷該請求是否有權限請求,判斷有權限后,才會接受請求地址和入參的
為什么要使用json
Json傳輸資料效率更高,所以部分場景下使用HTML與XML
但是json語言描述不及標簽語言,所以部分場景下使用html與xml
如果傳遞少量資料,使用json
介面組成
- 介面說明
- 呼叫url
- 請求方法(get/post)
- 請求引數,引數型別,請求引數說明
- 回傳引數說明
由介面檔案可知,介面至少應該有請求地址,請求方法,請求引數(入參和出參)組成,部分介面有請求頭header
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277981.html
標籤:其他
下一篇:Unittest框架
