接口測試本質上是功能測試的一種,屬於後端服務器測試。可是它的影響範圍要遠廣於web,app層面。緣由很簡單,由於目前不少公司,服務架構都是多端共用一套接口。和用戶直接交互的UI界面,web,app,小程 序,H5,它們有可能都是公用一套接口邏輯。後端若是服 務器掛了,或者出bug了,這些終端可能都會出問題。因此,作接口測試就很是有必要的。重要性:前端
1.越底層發現bug,它的修復成本是越低的。web
2.前端隨便變,接口測好了,後端不用變,先後端是兩撥人開發的。sql
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自動化成本過高,常常頁面大改,可能整個框架就廢了,因此不少公司都優先作接口自動化,比較穩定,目前需求最多的。因此找工做,優先學習掌握接口自動化。
接口測試不只僅是你找工做的必備技能,更是你之後深刻學習自動化以及性能測試的基礎。除非,你想一直作點點點工程師,否則自動化測試和性能測試重要性不言而喻。固然,也不是你想點就一直能點的,很是容易就被淘汰!