簡介
上一篇和大家一起科普掃盲接口后,知道什么是接口靖诗,接口類型等郭怪,對其有了大致了解之后,我們就回到主題-接口測試刊橘。
什么是接口測試
接口測試是測試系統(tǒng)組件間接口的一種測試鄙才。接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數(shù)據(jù)的交換促绵,傳遞和控制管理過程攒庵,以及系統(tǒng)間的相互邏輯依賴關系等。
一般來說败晴,測試接口浓冒,就是指測試接口的功能,性能和穩(wěn)定性測試尖坤,當然可能還有安全性測試稳懒。這個入門系列會讓你掌握接口的功能測試。一般慢味,來說我們聽說到的接口基本上都是指HTTP或者HTTPS協(xié)議的接口測試场梆,也就是一些web服務請求。一個軟件項目中纯路,
有很多接口辙谜,少的有幾十個,多的有幾百上千個接口感昼。這個時候,我們沒有軟件界面罐脊,沒有具體的測試場景定嗓,只有一個接口描述文檔。我們需要把接口這樣抽象的東西萍桌,通過軟件測試的理論和方法去測試接口宵溅,找出接口的功能和安全性的缺陷。接口有內(nèi)部接口和外部
接口上炎。內(nèi)部接口就是開發(fā)人員自己開發(fā)的接口恃逻。外部接口雏搂,好比網(wǎng)站調(diào)用微信支付和支付寶支付接口。還有一些模塊與模塊之間的接口盏筐。學習過Java或者用過selenium的人毁靶,應該對接口有了解拨脉。你的自動化腳本調(diào)用了很多selenium的接口。
?為什么要做接口測試
1芙沥、現(xiàn)在很多系統(tǒng)前后端架構是分離的,因為不同端(前段浊吏,后端)的工作進度不一樣而昨,所以我們要針對最開始出來的接口,以及需要調(diào)用其他公司的(銀行找田,支付寶歌憨,微信,qq等)一些接口進行接口測試及驗證數(shù)據(jù)墩衙,從安全層面來說务嫡,
只依賴前端進行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前端太容易了), 需要后端同樣進行控制底桂,在這種情況下就需要從接口層面進行驗證植袍。在這種情況下就需要從接口層面進行驗證。前后端傳輸籽懦、日志打印等信息是否加密傳輸也是需
要驗證的于个,特別是涉及到用戶的隱私信息,如身份證暮顺,銀行卡等厅篓。
2、如今系統(tǒng)越來越復雜捶码,傳統(tǒng)的靠前端測試已經(jīng)大大降低了效率羽氮,而且現(xiàn)在我們都推崇測試前移也叫測試左移,希望測試能更早的介入測試惫恼,那接口測試就是一種及早介入的方式档押。例如傳統(tǒng)測試,你是不是得等前后端都完成你才能進行測試祈纯,才能進行自動化代碼編
寫令宿。 而如果是接口測試,只需要前后端定義好接口腕窥,那這時自動化就可以介入編寫接口自動化測試代碼粒没,手工測試只需要后端代碼完成就可以介入測試后端邏輯而不用等待前端工作完成。
測試左移這個是一次偶然的機會在群里看到的簇爆,孤陋寡聞的我癞松,第一次看到爽撒,也是一知半解,后來查了一些資料供大家參考响蓉。
測試左移的原則支持測試團隊在軟件開發(fā)周期早期和所有干系人合作硕勿。因此他們能清晰地理解需求以及設計測試用例去幫助軟件“快速失敗”,促使團隊更早的修改所有的bug厕妖。
測試左移并沒有什么獨特的首尼,只是讓測試人員在軟件開發(fā)生命周期內(nèi)更早的參與進來,同時讓他們?nèi)ダ斫庑枨笱越铡④浖O計软能、軟件架構以及軟件功能,也讓他們?nèi)ハ蚩蛻艟倩⑸虡I(yè)分析師和開發(fā)人員問問題查排,尋找答案,提供反饋結果已達到支持團隊的工作得可能性抄沮。參
與和理解會使測試人員獲取產(chǎn)品完整的知識跋核,徹底想清楚各種場景,根據(jù)軟件行為設計實時的場景叛买,這些都會幫助團隊在編碼完成之前識別出一些缺陷砂代。這樣也可以更好的的體現(xiàn)我們作為一個QA的價值體? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
金字塔模型
通過之前對金字塔結構的學習,大概了解到了金字塔模型想告訴我們的幾個道理:
1.越底層率挣,越穩(wěn)定刻伊。
金字塔主要觀點認為單元測試的穩(wěn)定性高,需要多投入椒功。
2.越底層捶箱,越高效。
程序的問題动漾,最終還得落在具體的代碼上丁屎,所以底層的測試更容易發(fā)現(xiàn)問題。
3.越底層旱眯,越低成本晨川。
越底層測試能越早發(fā)現(xiàn)問題,越早發(fā)現(xiàn)問題删豺,修復的成本自然越低础爬。
4.越底層,越難實施吼鳞。
越底層的實現(xiàn)對技術專業(yè)性要求越高,這點跟第三點有點矛盾叫搁,往往越專業(yè)的人才也意味著人力成本越高赔桌。
綜合下金字塔模型供炎,隨著前后端分離越來越清晰,我個人愚見提出了燈籠模型疾党,拿接口測試和UI層測試以及單元測試做了比較音诫,從圖中各部分所占有的比重,可以一目了然的看出并最終認定接口(API)測試可以獲得較高的投資回報雪位。
? 燈籠模型
個人愚見竭钝,如有過錯,請批評指正:
接口將前端和后端進行很好的分離雹洗,幫前后端實現(xiàn)數(shù)據(jù)交互香罐,這樣在項目初期就可以和前端工程師討論需要的后端數(shù)據(jù),然后后端根據(jù)需求開發(fā)后接口时肿,將數(shù)據(jù)返回給前端庇茫,測試人員提前進入測試接口,前后端然后在各自開發(fā)自己模塊螃成。
?項目遷移旦签,以及后期維護,接口帶來的便利性寸宏,試想一下宁炫,如果沒有項目交付以后,后端人員將數(shù)據(jù)庫的某個字段的長度氮凝、類型修改后發(fā)版羔巢,而由于某些原因沒有及時通知前端工程師,而此時前端的獲取的這個字段的類型覆醇、長度是以前的朵纷,那么就可能引發(fā)線上事故。如
果前端技術牛叉永脓,存儲獲取字段是一個變量袍辞,工作量還小點。只需要改變變量類型常摧、長度即可搅吁,如果是一個差一點的沒有用變量,而前端又是好幾百個頁面都用到這個字段落午,這樣就造成后果無法想象的谎懦,但是用到接口就有不一樣了,如果出現(xiàn)類似的情況溃斋,后端人員只需
要將這個字段通過接口做處理是返回的字段保持一致即可界拦,也就是分分鐘的事,可能用戶都沒有察覺就修復了梗劫。而且前端享甸、后端截碴、測試也很好排查問題,跑一下接口蛉威,查看接口文檔返回數(shù)據(jù)有差異日丹,修給接口就可以,這樣處理問題效率也會大大提高蚯嫌。
簡單概括:
①.越底層發(fā)現(xiàn)bug哲虾,它的修復成本是越低的。
②.前端隨便變择示,接口測好了束凑,后端不用變,前后端是兩撥人開發(fā)的对妄。
③.檢查系統(tǒng)的安全性湘今、穩(wěn)定性,前端傳參不可信剪菱,比如京東購物摩瞎,前端價格不可能傳入-1元,但是通過接口可以傳入-1元孝常。
④.如今的系統(tǒng)復雜度不斷上升旗们,傳統(tǒng)的測試方法成本急劇增加且測試效率大幅下降,接口測試可以提供這種情況下的解決方案构灸。
⑤. 接口測試相對容易實現(xiàn)自動化持續(xù)集成上渴,且相對UI自動化也比較穩(wěn)定,可以減少人工回歸測試人力成本與時間喜颁,縮短測試周期稠氮,支持后端快速發(fā)版需求。接口持續(xù)集成是為什么能低成本高收益的根源半开。
⑥. ? 現(xiàn)在很多系統(tǒng)前后端架構是分離的隔披,從安全層面來說:
(1)、只依賴前端進行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前面實在太容易)寂拆, 需要后端同樣進行控制奢米,在這種情況下就需要從接口層面進行驗證。
(2)纠永、前后端傳輸鬓长、日志打印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息尝江,如身份證涉波,銀行卡等。
【python接口自動化交流群】:984942724
您的肯定就是我進步的動力。如果你感覺還不錯啤覆,就請鼓勵一下吧善延!記得點波?推薦哦!3遣唷!(點擊右邊的小球即可彼妻!(^__^)?嘻嘻……)
?個人公眾號? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
微信群?(微信群已滿100嫌佑,可以加宏哥的微信拉你進群,請備注:進群)