摘自:https://www.cnblogs.com/puresoul/p/5388586.html
本文主要分為兩個(gè)部分:
第一部分:主要從問(wèn)題出發(fā),引入接口測(cè)試的相關(guān)內(nèi)容并與前端測(cè)試進(jìn)行簡(jiǎn)單對(duì)比垃沦,總結(jié)兩者之前的區(qū)別與聯(lián)系诽偷。但該部分只交代了怎么做和如何做坤学?并沒(méi)有解釋為什么要做?
第二部分:主要介紹為什么要做接口測(cè)試报慕,并簡(jiǎn)單總結(jié)接口持續(xù)集成和接口質(zhì)量評(píng)估相關(guān)內(nèi)容深浮。
第一部分:
首先,在做接口測(cè)試的過(guò)程中眠冈,經(jīng)常有后端開(kāi)發(fā)會(huì)問(wèn):
后端接口都測(cè)試什么飞苇?怎么測(cè)的?
后端接口測(cè)試一遍 蜗顽,前端也測(cè)試一遍布卡,是不是重復(fù)測(cè)試了?
????? 于是雇盖,為了向開(kāi)發(fā)解釋上述問(wèn)題忿等,普及基本的測(cè)試常識(shí),特意梳理了接口測(cè)試的相關(guān)內(nèi)容以及其與前端測(cè)試的區(qū)別崔挖,使開(kāi)發(fā)團(tuán)隊(duì)與測(cè)試團(tuán)隊(duì)在測(cè)試這件上達(dá)成基本的共識(shí)贸街,提高團(tuán)隊(duì)協(xié)作效率庵寞,從而更好的保證產(chǎn)品質(zhì)量。
然后薛匪,我們?cè)囍卮鹕厦娴膯?wèn)題:
問(wèn)題1.1捐川、后端接口都測(cè)試什么?
--回答這個(gè)問(wèn)題蛋辈,我們可以從接口測(cè)試活動(dòng)內(nèi)容的角度下手属拾,看一下面這張圖,基本反應(yīng)了當(dāng)前我們項(xiàng)目后端接口測(cè)試的主要內(nèi)容:
問(wèn)題1.2冷溶、我們?cè)趺醋鼋涌跍y(cè)試渐白?
--由于我們項(xiàng)目前后端調(diào)用主要是基于http協(xié)議的接口,所以測(cè)試接口時(shí)主要是通過(guò)工具或代碼模擬http請(qǐng)求的發(fā)送與接收逞频。工具有很多如:postman纯衍、jmeter、soupUI苗胀、java+httpclient襟诸、robotframework+httplibrary等。
問(wèn)題2基协、后端接口測(cè)試一遍 歌亲,前端也測(cè)試一遍,是不是重復(fù)測(cè)試了澜驮?
--回答這個(gè)問(wèn)題陷揪,我們可以直接對(duì)比接口測(cè)試和app端測(cè)試活動(dòng)的內(nèi)容,如下圖為app測(cè)試時(shí)需要覆蓋或考慮內(nèi)容:
從上面這兩張圖對(duì)比可以看出杂穷,兩個(gè)測(cè)試活動(dòng)中相同的部分有功能測(cè)試悍缠、邊界分析測(cè)試和性能測(cè)試,其它部分由于各自特性或關(guān)注點(diǎn)不同需要進(jìn)行特殊的測(cè)試耐量,在此不做討論飞蚓。接下來(lái)我們針對(duì)以上三部分相同的內(nèi)容再進(jìn)行分析:
1、基本功能測(cè)試:
由于是針對(duì)基本業(yè)務(wù)功能進(jìn)行測(cè)試廊蜒,所以這部分是兩種測(cè)試重合度最高的一塊趴拧,開(kāi)發(fā)同學(xué)通常所指的也主要是這部分的內(nèi)容。
2劲藐、邊界分析測(cè)試:
在基本功能測(cè)試的基礎(chǔ)上考慮輸入輸出的邊界條件八堡,這部分內(nèi)容也會(huì)有重復(fù)的部分(比如業(yè)務(wù)規(guī)則的邊界)。但是聘芜,前端的輸入輸出很多時(shí)候都是提供固守的值讓用戶選擇(如下拉框),在這種情況下測(cè)試的邊界范圍就非常有限缝龄,但接口測(cè)試就不存在這方面的限制汰现,相對(duì)來(lái)說(shuō)接口可以覆蓋的范圍更廣挂谍,同樣的,接口出現(xiàn)問(wèn)題的概率也更高瞎饲。
?3口叙、性能測(cè)試:
這個(gè)比較容易區(qū)分,雖然都需要做性能測(cè)試嗅战,但關(guān)注點(diǎn)確大不相同妄田。App端性能主要關(guān)注與手機(jī)相關(guān)的特性,如手機(jī)cpu驮捍、內(nèi)存疟呐、流量、fps等东且。而接口性能主要關(guān)注接口響應(yīng)時(shí)間启具、并發(fā)、服務(wù)端資源的使用情況等珊泳。兩種測(cè)試時(shí)的策略和方法都有很大區(qū)別鲁冯,所以這部分內(nèi)容是需要分開(kāi)單獨(dú)進(jìn)行測(cè)試的,理論上來(lái)說(shuō)這也是不同的部分色查。
綜論:
? ? ? 1薯演、接口測(cè)試和app測(cè)試的活動(dòng)有部分重復(fù)的內(nèi)容,主要集中在業(yè)務(wù)功能測(cè)試方面秧了。除此之外跨扮,針對(duì)各自特性的測(cè)試都不一樣,需要分別進(jìn)行有針對(duì)性的測(cè)試示惊,才能確保整個(gè)產(chǎn)品的質(zhì)量好港。
2、接口測(cè)試可以關(guān)注于服務(wù)器邏輯驗(yàn)證米罚,而UI測(cè)試可以關(guān)注于頁(yè)面展示邏輯及界面前端與服務(wù)器集成驗(yàn)證
第二部分:
1钧汹、什么是接口測(cè)試?
????? 接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試录择。接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)拔莱。測(cè)試的重點(diǎn)是要檢查數(shù)據(jù)的交換,傳遞和控制管理過(guò)程隘竭,以及系統(tǒng)間的相互邏輯依賴關(guān)系等塘秦。
2、為什么要做接口測(cè)試?
a) 如今的系統(tǒng)復(fù)雜度不斷上升动看,傳統(tǒng)的測(cè)試方法成本急劇增加且測(cè)試效率大幅下降尊剔,接口測(cè)試可以提供這種情況下的解決方案。
b) ?接口測(cè)試相對(duì)容易實(shí)現(xiàn)自動(dòng)化持續(xù)集成菱皆,且相對(duì)UI自動(dòng)化也比較穩(wěn)定须误,可以減少人工回歸測(cè)試人力成本與時(shí)間挨稿,縮短測(cè)試周期,支持后端快速發(fā)版需求京痢。接口持續(xù)集成是為什么能低成本高收益的根源奶甘。
c) ? 現(xiàn)在很多系統(tǒng)前后端架構(gòu)是分離的,從安全層面來(lái)說(shuō):
????? 1祭椰、只依賴前端進(jìn)行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過(guò)前面實(shí)在太容易)臭家, 需要后端同樣進(jìn)行控制,在這種情況下就需要從接口層面進(jìn)行驗(yàn)證方淤。
????? 2钉赁、前后端傳輸、日志打印等信息是否加密傳輸也是需要驗(yàn)證的臣淤,特別是涉及到用戶的隱私信息橄霉,如身份證,銀行卡等邑蒋。
3姓蜂、接口測(cè)試持續(xù)集成:
????? 對(duì)接口測(cè)試而言,持續(xù)集成自動(dòng)化是核心內(nèi)容医吊,通過(guò)持自動(dòng)化的手段我們才能做到低成本高收益钱慢。目前我們已經(jīng)實(shí)現(xiàn)了接口自動(dòng)化,主要應(yīng)用于回歸階段卿堂,后續(xù)還需要加強(qiáng)自動(dòng)化的程度束莫,包括但不限于下面的內(nèi)容:
a) 流程方面:在回歸階段加強(qiáng)接口異常場(chǎng)景的覆蓋度,并逐步向系統(tǒng)測(cè)試草描,冒煙測(cè)試階段延伸览绿,最終達(dá)到全流程自動(dòng)化。
b) 結(jié)果展示:更加豐富的結(jié)果展示穗慕、趨勢(shì)分析饿敲,質(zhì)量統(tǒng)計(jì)和分析等
c) 問(wèn)題定位:報(bào)錯(cuò)信息、日志更精準(zhǔn)逛绵,方便問(wèn)題復(fù)現(xiàn)與定位怀各。
d) 結(jié)果校驗(yàn):加強(qiáng)自動(dòng)化校驗(yàn)?zāi)芰Γ鐢?shù)據(jù)庫(kù)信息校驗(yàn)术浪。
e) 代碼覆蓋率:不斷嘗試由目前的黑盒向白盒下探瓢对,提高代碼覆蓋率。
f) 性能需求:完善性能測(cè)試體系胰苏,通過(guò)自動(dòng)化的手段監(jiān)控接口性能指標(biāo)是否正常硕蛹。
4、接口測(cè)試質(zhì)量評(píng)估標(biāo)準(zhǔn):
a) 業(yè)務(wù)功能覆蓋是否完整
b) 業(yè)務(wù)規(guī)則覆蓋是否完整
c) 參數(shù)驗(yàn)證是否達(dá)到要求(邊界、業(yè)務(wù)規(guī)則)
d) 接口異常場(chǎng)景覆蓋是否完整
e) 接口覆蓋率是否達(dá)到要求
f) ?代碼覆蓋率是否達(dá)到要求
g) 性能指標(biāo)是否滿足要求
h) 安全指標(biāo)是否滿足要求