現(xiàn)在接口測試很多團隊和企業(yè)都在要求,其實接口測試一直都存在,為何現(xiàn)在會突然開始要求更高呢?
- 自動化測試分層概念的提出;
- 到目前為止 UI 自動化都很難達(dá)到預(yù)期的效果,而單元測試成本和難度依舊太高;
- 移動應(yīng)用興起,出現(xiàn)多種前端的情況,UI 測試成本變高;
- 微服務(wù)架構(gòu)的流行,模塊與模塊的交互變成了服務(wù)與服務(wù)之間的交互,服務(wù)之間的交互都是通過接口進(jìn)行通信,后端環(huán)境變得復(fù)雜,通過 UI 進(jìn)行業(yè)務(wù)覆蓋難度太大;
- MVVM 架構(gòu)的大量應(yīng)用,服務(wù)端直接返回頁面模板的方式變?yōu)橥ㄟ^接口調(diào)用返回 JSON 格式的數(shù)據(jù)形式,通過接口測試對結(jié)果的判斷變得更加容易;
- 敏捷的開發(fā)模式,期望找到更有效的自動化測試方式,提高整個敏捷開發(fā)的效率。
另外,對測試人員來說,接口測試還可以達(dá)到以下目的:
1. 測試提前介入
接口一般是最先開始設(shè)計和實現(xiàn)的,測試可以在界面形成之前介入測試, 盡早發(fā)現(xiàn)邏輯問題;
2. 節(jié)省測試成本
底層的一個 bug 往往會引發(fā)上層的多個 bug,而且底層的 bug 要么是數(shù)據(jù)問題就是邏輯問題,甚至安全性的問題。相反接口測試能夠提供系統(tǒng)復(fù)雜度上升情況下的低成本高效率的解決方案;
3. 快速失敗
主要是讓異常或錯誤盡快的拋出。在接口測試中,由于接口測試是相對底層的測試,所以,可以更快的發(fā)現(xiàn)錯誤;
4. 解決測試的復(fù)雜度
接口返回內(nèi)容相對單純,不像 UI 界面有太多干擾信息。斷言相對更容易;
5. 屏蔽 UI 層的不穩(wěn)定性
接口邏輯相對于前臺 UI 界面更加穩(wěn)定,較為不容易發(fā)生變化;
6. 檢查系統(tǒng)的安全性和穩(wěn)定性
很多 UI 界面都會做相關(guān)校驗,但是由于整體社會對計算機的認(rèn)知水平提高,很容易篡改接口數(shù)據(jù),繞過校驗;
7.經(jīng)過接口測試的系統(tǒng)有更強的健壯性
通過詳細(xì)的接口測試后,接口很穩(wěn)定。前端出現(xiàn)的錯誤對系統(tǒng)的邏輯影響不大,減少了 bug 產(chǎn)生。