1.什么是接口?
接口主要用于系統與系統之間以及程序內部各個子系統之間的交互點,定義特定的交互點,然后通過這些交互點也就是協議,來進行數據之間的交互。
2.接口都有哪些類型?
接口一般分為兩種:1.程序內部的接口 2.對外提供的接口
對外提供的接口:如:微信支付接口, 支付寶支付接口等
程序內部的接口:方法與方法之間,模塊與模塊之間的交互,程序內部拋出的接口,比如電商系統,有登錄模塊、提交訂單模塊等等,要支付就必須先登錄,那么這兩個模塊就得有交互,系統內部就會通過一個接口進行數據交互。
接口的分類:1.webservice接口 2.http協議(api接口)
webService接口是走soap協議通過http傳輸,請求報文和返回報文都是xml格式的,我們在測試的時候可以借助SoapUI工具進行調用及測試。
api接口是走http協議,通過路徑來區分調用的方法,請求報文都是key-value形式的,返回報文一般都是json串,有get,post,put,delete等四種常用請求方式。
json是一種通用的數據類型,所有的語言都認識它。(json的本質是字符串,它與其他語言無關,只是可以經過稍稍加工可以轉換成其他語言的數據類型,比如可以轉換成Python中的字典,key-value的形式。)
3.接口的本質及其工作原理是什么?
接口你可以簡單的理解他就是發起請求獲取響應數據,工作原理就是URL通過get或者post請求向服務器發送一些東西,然后得到一些相應的返回值,本質就是數據的傳輸與接收。
4.什么是接口測試?
百度百科的概述為: 接口測試是測試系統組件間接口的一種測試。
接口測試主要用于檢測外部系統與系統之間以及內部各個子系統之間的交互點。
測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。
簡答的說就是通過URL向服務器或者其他模塊等,傳輸我們想傳輸的數據,然后看看他們返回數據的是不是預期想要的。
5.為什么要做接口測試?
5.1 越底層發現bug,它的修復成本是越低的。
5.2 前端隨便變,接口測好了,后端不用變,前后端是兩撥人開發的。
5.3 檢查系統的安全性、穩定性,前端傳參不可信,比如電商購物系統,前端價格無法實現傳入數據為-1元,但是通過接口可以傳入-1元。
5.4 如今的系統復雜度不斷上升,傳統的測試方法成本急劇增加且測試效率大幅下降,接口測試可以應對復雜度較高的測試場景, 負載度越高接口測試效果月好
5.5 接口測試相對容易實現自動化持續集成,且相對UI自動化也比較穩定,可以減少人工回歸測試人力成本與時間,縮短測試周期,支持后端快速發版需求。接口持續集成是為什么能低成本高收益的根源。
5.6 現在很多系統前后端架構是分離的,從安全層面來說:
(1)、只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易), 需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。
(2)、前后端傳輸、日志打印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。
6.怎樣做接口測試?
由于目前大部分項目前后端分離,調用接口主要是基于http協議的接口,所以測試接口時主要是通過工具或代碼模擬http請求的發送與接收。工具有很多如:postman、jmeter、soupUI、java+httpclient/TestNG、robotframework等。
-- 也可以用代碼實現接口自動化,框架和UI自動化差不多,發送請求用斷言來判斷
7.接口測測試點是什么?
目的:測試接口的正確性和穩定性;
原理:模擬客戶端向服務器發送請求報文,服務器接收請求報文后對相應的報文做處理并向客戶端返回應答,客戶端接收應答的過程;
重點:檢查數據的交換,傳遞和控制管理過程,還包括處理的次數;
核心:持續集成是接口測試的核心;
優點:為高復雜性的平臺帶來高效的缺陷監測和質量監督能力,平臺越復雜,系統越龐大,接口測試的效果越明顯(提高測試效率,提升用戶體驗,降低研發成本);
用例設計重點:通常情況下主要測試最外層的兩類接口:數據進入系統接口(調用外部系統的參數為本系統使用)和數據流出系統接口(驗證系統處理后的數據是否正常);
PS:設計用例時還需要注意外部接口提供給使用這些接口的外部用戶什么功能,外部用戶真正需要什么功能.
8. 對接口測試而言,持續集成接口自動化是核心內容, 接口自動化包含以下內容:
8.1 流程方面:在回歸階段加強接口異常場景的覆蓋度,并逐步向系統測試,冒煙測試階段延伸,最終達到全流程自動化。
8.2 結果展示:更加豐富的結果展示、趨勢分析,測試數據統計和分析等
8.3 問題定位:報錯信息、日志更精準,方便問題復現與定位。
8.4 結果校驗:加強自動化校驗能力,如數據庫信息校驗。
8.5 代碼覆蓋率:不斷嘗試由目前的黑盒向白盒下探,提高代碼覆蓋率。
8.6 性能需求:完善性能測試體系,通過自動化的手段監控接口性能指標是否正常。
9. 接口測試質量評估標準:
-- 業務功能覆蓋是否完整
-- 業務規則覆蓋是否完整
-- 參數驗證是否達到要求(邊界、業務規則)
-- 接口異常場景覆蓋是否完整
-- 接口覆蓋率是否達到要求
-- 代碼覆蓋率是否達到要求
-- 性能指標是否滿足要求
-- 安全指標是否滿足要求
更多關于軟件測試培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。