本文主要分為兩個部分: 第一部分:主要從問題出發(fā),引入接口測試的相關(guān)內(nèi)容并與前端測試進行簡單對比颓鲜,總結(jié)兩者之前的區(qū)別與聯(lián)系表窘。但該部分只交代了怎么做和如何做?并沒有解釋為什么要做甜滨? 第二部分:主要介紹為什么要做接口測試乐严,并簡單總結(jié)接口持續(xù)集成和接口質(zhì)量評估相關(guān)內(nèi)容。 第一部分: 首先衣摩,在做接口測試的過程中昂验,經(jīng)常有后端開發(fā)會問:
后端接口都測試什么?怎么測的艾扮?
后端接口測試一遍 凛篙,前端也測試一遍,是不是重復(fù)測試了栏渺?
于是呛梆,為了向開發(fā)解釋上述問題,普及基本的測試常識磕诊,特意梳理了接口測試的相關(guān)內(nèi)容以及其與前端測試的區(qū)別填物,使開發(fā)團隊與測試團隊在測試這件上達成基本的共識,提高團隊協(xié)作效率霎终,從而更好的保證產(chǎn)品質(zhì)量滞磺。
然后,我們試著回答上面的問題:
問題1.1莱褒、后端接口都測試什么击困?
--回答這個問題,我們可以從接口測試活動內(nèi)容的角度下手,看一下面這張圖阅茶,基本反應(yīng)了當(dāng)前我們項目后端接口測試的主要內(nèi)容:
?
問題1.2蛛枚、我們怎么做接口測試?
--由于我們項目前后端調(diào)用主要是基于http協(xié)議的接口脸哀,所以測試接口時主要是通過工具或代碼模擬http請求的發(fā)送與接收蹦浦。工具有很多如:postman、jmeter撞蜂、soupUI盲镶、java+httpclient、robotframework+httplibrary等蝌诡。
問題2溉贿、后端接口測試一遍 ,前端也測試一遍浦旱,是不是重復(fù)測試了宇色?
--回答這個問題,我們可以直接對比接口測試和app端測試活動的內(nèi)容闽寡,如下圖為app測試時需要覆蓋或考慮內(nèi)容:
?
從上面這兩張圖對比可以看出,兩個測試活動中相同的部分有功能測試尼酿、邊界分析測試和性能測試爷狈,其它部分由于各自特性或關(guān)注點不同需要進行特殊的測試,在此不做討論裳擎。接下來我們針對以上三部分相同的內(nèi)容再進行分析:
1涎永、基本功能測試:
由于是針對基本業(yè)務(wù)功能進行測試,所以這部分是兩種測試重合度高的一塊鹿响,開發(fā)同學(xué)通常所指的也主要是這部分的內(nèi)容羡微。
2、邊界分析測試:
在基本功能測試的基礎(chǔ)上考慮輸入輸出的邊界條件惶我,這部分內(nèi)容也會有重復(fù)的部分(比如業(yè)務(wù)規(guī)則的邊界)妈倔。但是,前端的輸入輸出很多時候都是提供固守的值讓用戶選擇(如下拉框)绸贡,在這種情況下測試的邊界范圍非常有限盯蝴,但接口測試不存在這方面的限制,相對來說接口可以覆蓋的范圍更廣听怕,同樣的捧挺,接口出現(xiàn)問題的概率也更高。
3尿瞭、性能測試:
這個比較容易區(qū)分闽烙,雖然都需要做性能測試,但關(guān)注點確大不相同声搁。App端性能主要關(guān)注與手機相關(guān)的特性黑竞,如手機cpu捕发、內(nèi)存、流量摊溶、fps等爬骤。而接口性能主要關(guān)注接口響應(yīng)時間、并發(fā)莫换、服務(wù)端資源的使用情況等霞玄。兩種測試時的策略和方法都有很大區(qū)別,所以這部分內(nèi)容是需要分開單獨進行測試的拉岁,理論上來說這也是不同的部分坷剧。
綜論:
1、接口測試和app測試的活動有部分重復(fù)的內(nèi)容喊暖,主要集中在業(yè)務(wù)功能測試方面惫企。除此之外,針對各自特性的測試都不一樣陵叽,需要分別進行有針對性的測試狞尔,才能確保整個產(chǎn)品的質(zhì)量。
2巩掺、接口測試可以關(guān)注于服務(wù)器邏輯驗證偏序,而UI測試可以關(guān)注于頁面展示邏輯及界面前端與服務(wù)器集成驗證。
第二部分: 1胖替、什么是接口測試研儒?
接口測試是測試系統(tǒng)組件間接口的一種測試。接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點独令。測試的重點是要檢查數(shù)據(jù)的交換端朵,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等燃箭。
2冲呢、為什么要做接口測試?
a) 如今的系統(tǒng)復(fù)雜度不斷上升,傳統(tǒng)的測試方法成本急劇增加且測試效率大幅下降招狸,接口測試可以提供這種情況下的解決方案碗硬。
b)? 接口測試相對容易實現(xiàn)自動化持續(xù)集成,且相對UI自動化也比較穩(wěn)定瓢颅,可以減少人工回歸測試人力成本與時間恩尾,縮短測試周期,支持后端快速發(fā)版需求挽懦。接口持續(xù)集成是為什么能低成本高收益的根源翰意。
c)? 現(xiàn)在很多系統(tǒng)前后端架構(gòu)是分離的,從安全層面來說:
1、只依賴前端進行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前面實在太容易)冀偶, 需要后端同樣進行控制醒第,在這種情況下需要從接口層面進行驗證。
2进鸠、前后端傳輸稠曼、日志打印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息客年,如身份證霞幅,銀行卡等。
3量瓜、接口測試持續(xù)集成:
對接口測試而言司恳,持續(xù)集成自動化是核心內(nèi)容,通過持自動化的手段我們才能做到低成本高收益绍傲。目前我們已經(jīng)實現(xiàn)了接口自動化扔傅,主要應(yīng)用于回歸階段,后續(xù)還需要加強自動化的程度烫饼,包括但不限于下面的內(nèi)容:
a) 流程方面:在回歸階段加強接口異常場景的覆蓋度猎塞,并逐步向系統(tǒng)測試,冒煙測試階段延伸杠纵,終達到全流程自動化荠耽。
b) 結(jié)果展示:更加豐富的結(jié)果展示、趨勢分析淡诗,質(zhì)量統(tǒng)計和分析等
c) 問題定位:報錯信息骇塘、日志更伊履,方便問題復(fù)現(xiàn)與定位韩容。
d) 結(jié)果校驗:加強自動化校驗?zāi)芰Γ鐢?shù)據(jù)庫信息校驗唐瀑。
e) 代碼覆蓋率:不斷嘗試由目前的黑盒向白盒下探群凶,提高代碼覆蓋率。
f) 性能需求:完善性能測試體系哄辣,通過自動化的手段監(jiān)控接口性能指標(biāo)是否正常请梢。
4、接口測試質(zhì)量評估標(biāo)準(zhǔn):
a) 業(yè)務(wù)功能覆蓋是否完整
b) 業(yè)務(wù)規(guī)則覆蓋是否完整
c) 參數(shù)驗證是否達到要求(邊界力穗、業(yè)務(wù)規(guī)則)
d) 接口異常場景覆蓋是否完整
e) 接口覆蓋率是否達到要求
f)? 代碼覆蓋率是否達到要求
g) 性能指標(biāo)是否滿足要求
h) 安全指標(biāo)是否滿足要求
了解更多關(guān)于軟件測試的內(nèi)容毅弧,歡迎加小編創(chuàng)建的球球裙:1017539290