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