淺談介面測試
什麼是介面測試
百度百科上面是這麼說的:介面測試是測試系統元件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。
聽了上面這個解釋沒做過介面測試的人可能心裡要來一句:MMP,說人話!其實在芒果看來介面測試就是實現系統各個功能的子模組或者外部系統對模組的呼叫了,比如我們要下訂單,就必須先登入,那這兩個模組就得有互動,登入模組就會丟擲一個介面,供包括下訂單模組的模組對它進行呼叫。
現在大家說的介面測試,基本都是基於HTTP協議的介面測試,包括現在大家接觸得比較多的webservice跟dubbo都可以封裝為HTTP協議的模式,那我們這裡不得不介紹一下HTTP協議了。
HTTP協議
HTTP(HyperText Transport Protocol)是超文字傳輸協議的縮寫,它用於傳送WWW方式的資料,關於HTTP協議的詳細內容請參考RFC2616。
HTTP協議採用了請求/響應模型。客戶端向伺服器傳送一個請求,請求頭包含請求的方法、URL、協議版本、以及包含請求修飾符、客戶資訊和內容的類似於MIME的訊息結構。伺服器以一個狀態行作為響應,響應的內容包括訊息協議的版本,成功或者錯誤編碼加上包含伺服器資訊、實體元資訊以及可能的實體內容。
我們在做基於HTTP協議的介面測試就是模擬客戶端向伺服器傳送一個HTTP請求,然後檢視伺服器返回的應答是否正確的過程。這裡我們一般關注呼叫url,請求方法(get\post),請求引數、引數型別、請求引數說明,返回引數說明這四大部分。
為什麼要學習介面測試
如今系統越來越複雜,傳統的靠前端測試已經大大降低了效率,而且現在我們都推崇測試前移,希望測試能更早的介入測試,那介面測試就是一種及早介入的方式。傳統的系統測試,我們必須等前後端都完成你才能進行測試。 而如果是介面測試,只需要前後端定義好介面,我們就可以進行。

對於自動化測試而言,只做UI層的自動化測試是不科學的,從而很難從本質上保證產品的質量。如果你妄圖實現全面的UI層的自動化測試,那更是一個勞民傷財的舉動,投入了大量人力時間,最終獲得的收益可能會遠遠低於所支付的成本。根據分層測試模型,越往上層,其維護成本越高,所以我們應該把更多的自動化測試放在單元測試與介面測試階段進行。
現在很多系統前後端架構是分離的,從安全層面來說,只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前端太容易了), 需要後端同樣進行控制,在這種情況下就需要從介面層面進行驗證。
介面測試工具
介面測試的工具很多,比如 postman、jmeter、RESTClient、SoapUI、fiddler等。當然也可以使用java+httpclient、python+requests、robotframework+httplibrary這些介面自動化程式碼框架來實現。
介面測試具體怎麼做
寫到這裡肯定有同學會問了,那http的請求與相應應該怎麼模擬,這些介面測試工具應該怎麼使用,介面自動化的程式碼又怎麼實現?在此小編給大家推薦一個群,群裡自動化,介面,效能等關於軟體測試資料群裡都是可以免費獲取的,群號是:706315665