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