1、什么是接口測試?
測試人員通常所說的“接口測試”是針對系統各組件之間接口的一種測試,它屬於功能測試。接口能測出普通界面操作難以發現的問題。如,我們都知道系統是由前端后端組成,一些數據在前端做了校驗,后端同樣也需要校驗才能保證安全,界面操作顯然只能檢查到前端校驗這一層,只有直接面對前后端之間的該接口才能檢驗出后端是否也做了校驗。
2、為什么要做接口測試?
a) 如今的系統復雜度不斷上升,傳統的測試方法成本急劇增加且測試效率大幅下降,接口測試可以提供這種情況下的解決方案。
b) 接口測試相對容易實現自動化持續集成,且相對UI自動化也比較穩定,可以減少人工回歸測試人力成本與時間,縮短測試周期,支持后端快速發版需求。接口持續集成是為什么能低成本高收益的根源。
c) 現在很多系統前后端架構是分離的,從安全層面來說:
1、只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易),需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。
2、前后端傳輸、日志打印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。
3、接口測試發現的問題?
1)可以發現很多頁面操作發現不了的問題;
2)檢查系統的異常處理能力;
3)檢查系統的安全性、穩定性;
4)前端隨便變,接口測好了,后端不用變;
4、接口測試的流程?
1)需求評審,熟悉業務和需求
2)開發提供接口文檔
3)編寫接口測試用例
4) 用例評審
5)提測后開始測試
6)提交測試報告
5、接口文檔 是接口測試的參照,至少包括:
1)接口說明
2)調用url
3)請求方法(get\post ……)
4)請求參數、參數類型、請求參數說明
5)返回參數說明
6、接口測試用例設計
(1)正確性驗證:首先保證接口好用,按文檔正常傳入,查看是否可以返回正確的結果。
(2)參數組合: 按接口文檔中對參數的要求進行有目的的組合,比如必填未填是否通過,標志類參數值的切換是否能對應正確的功能等。(這部分很關鍵) (3)接口安全: 1、繞過正常值驗證。 2、繞過身份授權驗證。 3、參數是否加密,加密規則是否容易破解。 4、密碼安全規則,密碼的復雜程度校驗。
(4)異常驗證:不按照接口文檔上的要求輸入參數,來驗證接口對異常情況的反應。
7、接口測試用例模板 (可根據項目實際情況設計增減)
1、項目 測試針對哪個項目
2、模塊 哪個功能模塊
3、用例id
4、接口名稱
5、用例標題 測試用途概括
6、請求方式 GET/POST
7、請求url URL地址
8、請求參數
9、前置條件 執行當前請求依賴的條件,不滿足就不能正確執行
10、結果驗證 預期結果
11、請求報文 可以不寫
12、返回報文 一定要寫,這里應該是你請求返回的真實結果
13、測試結果 通過/失敗
14、測試人員
8、測試http接口
請求常見有Get請求和Post請求。Get請求通常用來接收數據,Post請求通常用來發送數據;測Get請求可用瀏覽器完成,參數都可以寫在URL里面,測Post請求需要借助工具如Postman,因為客戶端需要提供給服務器的信息較多,你要寫body傳輸大量數據。
接口調用有兩種傳參方式:key-value形式,Json串傳參形式。 key-value形式可以把參數拼接在url的后面由?相連,多個參數之間用&相連;如url?parameter1=key1¶meter2=key2… ;Json串傳參不能把參數直接連在url中,需要寫在請求的body里面,可借助工具Postman,打開請求的body寫入Json格式參數(由花括號括起來的‘鍵:值’對)如 { “count”: 1, “start”: 0, “total”: 1 }
9、我們怎么做接口測試?
由於我們項目前后端調用主要是基於http協議的接口,所以測試接口時主要是通過工具或代碼模擬http請求的發送與接收。工具有很多如:postman、jmeter、soupUI、Java+httpclient、robotframework+httplibrary等。
