目錄:
一、什麼是介面?
二、介面測試流程
三、介面測試工具
四、介面測試技術點
五、總結
導讀:
為什麼要做介面測試
介面測試本質上是功能測試的一種,屬於後端伺服器測試。但是它的影響範圍要遠廣於web,app層面。原因很簡單,因為目前很多公司,服務架構都是多端共用一套介面。和使用者直接互動的UI介面,web,app,小程 序,H5,它們有可能都是公用一套介面邏輯。後端如果服 務器掛了,或者出bug了,這些終端可能都會出問題。所以,做介面測試就非常有必要的。重要性:
1.越底層發現bug,它的修復成本是越低的。
2.前端隨便變,介面測好了,後端不用變,前後端是兩撥人開發的。
3.檢查系統的安全性、穩定性,前端傳參不可信,比如京東購物,前端價格不可能傳入-1元,但是通過介面可以傳入-1元。
4.如今的系統複雜度不斷上升,傳統的測試方法成本急劇增加且測試效率大幅下降,介面測試可以提供這種情況下的解決方案。
5. 介面測試相對容易實現自動化持續整合,且相對UI自動化也比較穩定,可以減少人工迴歸測試人力成本與時間,縮短測試周期,支援後端快速發版需求。介面持續整合是為什麼能低成本高收益的根源。
6. 現在很多系統前後端架構是分離的,從安全層面來說:
(1)只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易), 需要後端同樣進行控制,在這種情況下就需要從介面層面進行驗證。( 想了解測試內容可加我QQ:1844835571)
(2)前後端傳輸、日誌列印等資訊是否加密傳輸也是需要驗證的,特別是涉及到使用者的隱私資訊,如身份證,銀行卡等。
介面測試是目前測試的主流手段之一,採用介面測試也有許多優點:
1.提高測試效率:可通過自動化手段實現重複驗證,也可以在依賴服務沒有開發完成時優先測試部分服務
2.方便定位Bug:通過介面的抓包和分析,可以清楚的知道問題是來源於前端還是後臺服務
3.提高服務端健壯性:通過介面測試可以測出來開發是否在後端做了校驗,幫助提高服務的健壯性
對很多新手來說介面測試很高大上,但實際上介面測試很簡單,掌握關鍵技術以後就可以把介面測試應用到日常工作中。開始講解介面測試之前,( 想了解測試內容可加我QQ:1844835571)先看看當你在瀏覽器中輸入地址,並看到Web頁面的時候底層問題:
1.瀏覽器根據輸入把請求傳送到伺服器
2.伺服器獲取到請求以後生成響應檔案,把響應檔案傳送給瀏覽器
3.瀏覽器解析響應,渲染資料生成Web頁面的展示效果
說了這麼多,介面測試到底有重要呢,那麼作為小白應該如何學習介面測試呢?
重點來了
首先你要學習網路協議知識,因為大部分介面都是基於http協議的,當然還有其它的比如dubbo協議。
其次你需要學習兩款測試工具,postman用來呼叫介面,fiddler用來抓包定位bug,當然,你使用瀏覽器自帶的F12也是可以的。
二、介面測試流程
介面測試流程和手動測試/UI測試流程類似,但是側重點不同:
需求分析:需求文件 VS 介面文件。
編寫和評審用例:根據需求變更結合業務優先順序,邊界值等價類等分析方法設計手動測試用例;根據介面的引數組合以及介面的預期返回設計介面測試用例。
準備測試環境和測試指令碼:介面測試需選擇合適的工具實現步驟2中評審的用例。
執行測試用例,傳送測試報告:介面測試自動執行指令碼,生成和傳送測試報告。
三、介面測試工具
介面測試的實現有多種工具,可根據團隊情況選型:
Postman:谷歌提供的開源介面測試工具,支援Http介面的呼叫和驗證
Jmeter:Apache提供的開源介面測試工具,除了支援Http介面還有很多擴充套件功能(Mysql,Redis,RabbitMQ…)
Fiddler:抓包工具,常用於介面分析以及Mobile端介面自動化
HttpComponents:Apache提供的開源包,可以基於它實現介面程式碼的編碼
四、介面測試技術點
介面測試最常用的技術點:
1.引數化:自動生成不同的介面資料,或者符合後端服務校驗規約的介面資料(eg: 手機號,身份證,郵箱,使用者姓名)
2.斷言:驗證介面的返回,包括響應碼,響應欄位的校驗(Json報文,HTML或XML報文)
3.關聯:多介面測試時,不同介面間的引數傳遞
4.資料庫:除了驗證相應報文,還可驗證資料庫欄位確保程式邏輯的正確性
5.持續整合:介面工具或框架和Jenkins等持續整合工具的結合,實現無人值守或者自動觸發
以上就是一個簡單的介面測試涉及到的方方面面,小夥伴們在日常工作中可以按這個思路開啟介面測試之路,並不斷豐富總結自己對介面測試工具,知識點以及流程的靈活應用,為什麼讓大家一定要掌握好介面測試?
原因也簡單,因為它是你後續深入進階學習自動化和效能測試的基礎。拿介面自動化來說,這是目前公司使用價效比最高的自動化,原因就在於ui自動化成本太高,經常頁面大改,可能整個框架就廢了,所以很多公司都優先做介面自動化,比較穩定,目前需求最多的。所以找工作,優先學習掌握介面自動化。
五、總結:
介面測試不僅僅是你找工作的必備技能,更是你以後深入學習自動化以及效能測試的基礎。除非,你想一直做點點點工程師,不然自動化測試和效能測試重要性不言而喻。當然,也不是你想點就一直能點的,非常容易就被淘汰!