Web開發和單元測試不難,但要成為一名合格的開發人員,還需要了解Web介面開發與測試。
一、介面測試簡介
1、什麼是介面測試?
介面測試是測試系統元件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等
2、為什麼要做介面測試
a)網際網路的快速發展,公司內部系統或與外部系統的關聯越來越多,一個業務流程關聯多個後端系統,它們的關聯都是基於介面來實現,介面測試可以將複雜的系統關聯進行簡化,只要做好每個介面的測試就能夠較好的保證系統質量。
b)單個系統的變更,是否會影響到關聯業務系統,比較難用常規的測試方面來覆蓋相關的應用系統(例如使用此介面的外部 系統有N個,不可能每個做功能相容性測試),但可以通過對介面功能的覆蓋來驗證是否影響它人對介面的呼叫。
c)介面功能比較單一,能夠比較好的進行測試覆蓋,也相對容易實現自動化持續整合,,可以減少人工迴歸成本與時間,縮短測試周期。
d)介面相對於介面功能,會更底層一些,測試覆蓋會更容易(如業務在呼叫介面時做了判斷,當不滿足條件時連結就不顯示,此時從介面無法測試相關功能是否做好判斷,通過介面就比較容易)
3、介面測試範圍
a)業務功能(包括正常、異常場景是否實現)
b)業務規則(覆蓋度是否全面)
c)引數驗證(邊界、業務規則是否達到要求)
d)異常場景(重複提交、併發提交、事務中斷、多機環境、大資料量測試)
e)效能測試(響應時間、吞吐量、併發數、資源要求)
f)安全測試(許可權驗證、SQL注入等)
4、介面測試的重點
1、檢查介面返回的資料是否與預期結果一致。
2、檢查介面的容錯性,假如傳遞資料的型別錯誤時是否可以處理。
3、介面引數的邊界值。例如,傳遞的引數足夠大或為負數時,介面是否可以正常處理。
4、介面的效能,http請求介面大多與後端執行的SQL語句效能、演算法等比較相關。
5、介面的安全性,外部呼叫的介面尤為重要。
二、做好介面測試的前提
1、系統化的介面文件
傳統的介面文件,一般採用word或wiki等系統來記錄,從單次使用上似乎比較簡單,因為大家會更習慣這樣的操作,但這種形式存在比較大的問題:
a、介面文件非標準化,無法直接與介面測試工具介面使用
b、介面維護困難,介面有變化時比較難標識清楚,溝通成本很高
系統化介面文件,例如rap(淘寶分源的一個系統),具備介面維護標準化、版本化管理、MOCK測試等功能;對標準化的介面內容做二次開發,可以直接匯出Soapui等工具使用的格式,直接匯入工具中使用,有以下好處:
A、介面測試時不再需要手工輸入相關欄位,節省時間成本
B、版本化管理,能夠清晰的知道哪些介面有變化
Rap參考 http://rapapi.org/org/index.do
2、標準化的介面規範
介面管理是做好介面測試很重要的前提,如果一個系統有哪些介面都不太清楚,測試就很難覆蓋到,介面管理建議採用以下方式:
A、按介面提供方為單位進行首次劃分,按介面使用方進行二次劃分,再按業務模組進行細分,分類原則根據內容多少進行優化,不需要固定,如本身介面較少就沒有必要分得過細,較多時就需要多劃分模組
如:系統A,提供有 1、2、3、4、5、6、7、8、9 這9個介面,介面分別給B系統、C系統使用,其中1、2為公用介面,3、4、5為B專用,6、7、8、9為C系統專用,劃分如下:
B、按介面連結URL做為唯一,不同的介面引數做為介面變數,介面有引數變更時在原來介面上進行維護,而不是新增加介面
C、為介面增加版本號,方便清楚哪些介面本次有變更,易於維護用例