開發口中的介面是什么?
我相信絕大多數測驗同學聽聞“介面”二字都源于開發同學,書本中的標準介面定義叫Interface,在JAVA編程語言中介面是一個抽象型別,是抽象方法的集合,介面通常以interface來宣告,一個類通過implements關鍵字實作介面,從而來重寫介面中的抽象方法,
但實際作業中開發同學常常掛在嘴邊的介面并不是理論上的介面interface,通常通過以下面兩種方式體現:
1.一個http請求
例如:http://host:port/getAllPeople
這個請求就是一個介面,當你發送這個url后,會從服務器端收到請求,服務端的核心代碼是,有一個方法來判斷url是什么,如果匹配到getAllPeople,則呼叫相關的方法,例如getAllPeople(){//具體實作代碼}
2.不通過http請求,直接呼叫方法getAllPeople(){//具體實作代碼}
而對于我們測驗人員最為關注的是第一種方式,即通過http請求呼叫后端服務代碼,因為測驗同學代碼相對薄弱,直接通過代碼呼叫的方式進行介面測驗難度較高,另外好多公司的研發代碼是絕對保密的,研發團隊以外的人很難獲取代碼,
為什么近年介面測驗的概念這么火爆呢?
傳統的開發模式轉變,從過去的瀑布到如今的敏捷;
移動互聯網的普及,用戶頁面需求變更頻繁,但是服務端介面相對穩定;
微服務的興起,好多服務根本沒有供測驗人員的UI可點,我們只能對服務端進行介面測驗,
常見的介面型別
HTTP介面;
RPC介面;
Web Service介面;
Dubble介面;
RESTful介面;
其中RESTful介面是基于HTTP介面的,Web Service及Dubble屬于RPC介面,目前HTTP介面是最核心也是應用最廣泛的介面!
介面測驗的核心測驗點
校驗介面引數是否達到要求(邊界、業務規則)
校驗介面回傳資料的正確性與格式
校驗介面覆寫率是否達到要求(一般要求核心介面要達到100%的測驗率,非核心介面根據)
性能指標是否滿足要求(介面的回應時間、處理能力)
安全指標是否滿足要求(一般介面都不會暴露在網上任意被呼叫,需要做一些限制,比如鑒權或認證,)
介面測驗較UI測驗的優勢
1.介面測驗相對容易實作自動化持續集成,且相對UI自動化也比較穩定
2.測驗可以更早的介入(具體的時間點應該是在后臺介面開發基本完畢之后,需要模塊間進行介面聯調的時候)
3.可以發現功能測驗覆寫不到的服務端問題
介面測驗開展的四個步驟
1.確認介面檔案的準確性,這是介面測驗通過與否的標準
2.準備介面測驗資料
3.構建介面
代碼選擇java的httpclient jar包或者python的requests模塊
工具選擇國外的postman、jmeter或國產的Eolinker等
其中比較推薦的Eolinker,是口碑比較好的一個國產介面工具,測驗檔案和管理功能都很完善,中文界面也可以降低上手難度
使用地址:www.eolinker.com

4.校驗介面請求,在成功呼叫介面后,獲取介面的回應資料,根據介面檔案來判斷介面測驗的通過與否
5.
做好介面測驗必備的知識點
了解OSI網路模型,TCP/UDP協議,掌握HTTP/HTTPS協議,了解RPC, Web Service及REST,理解Session和Cookie;
掌握常用的介面測驗工具Postman,Jmeter,SoupUI等;
掌味訓本的抓包工具如Chrome開發者工具,Fiddler,Wireshark等;
掌握一門編程語言Python或Java;
了解Nginx, Apache, Tomcat等服務器中間件;
掌握資料庫基本查詢命令,及Redis操作,用于檢查回應結果;
掌味訓本的Linux日志查詢和篩選命令,
總結
其實介面測驗開展的順利與否,技術并不占主要因素(核心技術就是我講的這么多,你會了就可以從事介面測驗了),個人覺得溝通才是介面測驗成敗的核心,因為介面測驗的開展以及介面檔案的撰寫需要開發人員大量的配合,這是極其需要溝通技巧的!(溝通問題不是本文的討論范圍)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/256237.html
標籤:其他
