python接口自動化(二)--什么是接口測試、為什么要做接口測試(詳解)


簡介

  上一篇和大家一起科普掃盲接口后,知道什么是接口,接口類型等,對其有了大致了解之后,我們就回到主題-接口測試。

什么是接口測試

  接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。 

  一般來說,測試接口,就是指測試接口的功能,性能和穩定性測試,當然可能還有安全性測試。這個入門系列會讓你掌握接口的功能測試。一般,來說我們聽說到的接口基本上都是指HTTP或者HTTPS協議的接口測試,也就是一些web服務請求。一個軟件項目中,

有很多接口,少的有幾十個,多的有幾百上千個接口。這個時候,我們沒有軟件界面,沒有具體的測試場景,只有一個接口描述文檔。我們需要把接口這樣抽象的東西,通過軟件測試的理論和方法去測試接口,找出接口的功能和安全性的缺陷。接口有內部接口和外部

接口。內部接口就是開發人員自己開發的接口。外部接口,好比網站調用微信支付和支付寶支付接口。還有一些模塊與模塊之間的接口。學習過Java或者用過selenium的人,應該對接口有了解。你的自動化腳本調用了很多selenium的接口。

 為什么要做接口測試

  1、現在很多系統前后端架構是分離的,因為不同端(前段,后端)的工作進度不一樣,所以我們要針對最開始出來的接口,以及需要調用其他公司的(銀行,支付寶,微信,qq等)一些接口進行接口測試及驗證數據,從安全層面來說,
 
只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前端太容易了), 需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。在這種情況下就需要從接口層面進行驗證。前后端傳輸、日志打印等信息是否加密傳輸也是需
 
要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。
 
 2、如今系統越來越復雜,傳統的靠前端測試已經大大降低了效率,而且現在我們都推崇測試前移也叫 測試左移,希望測試能更早的介入測試,那接口測試就是一種及早介入的方式。例如傳統測試,你是不是得等前后端都完成你才能進行測試,才能進行自動化代碼編
 
寫。 而如果是接口測試,只需要前后端定義好接口,那這時自動化就可以介入編寫接口 自動化測試代碼,手工測試只需要后端代碼完成就可以介入測試后端邏輯而不用等待前端工作完成。
  
   測試左移這個是一次偶然的機會在群里看到的,孤陋寡聞的我,第一次看到,也是一知半解,后來查了一些資料供大家參考。
  
   測試左移的原則支持測試團隊在軟件開發周期早期和所有干系人合作。因此他們能清晰地理解需求以及設計測試用例去幫助軟件“快速失敗”,促使團隊更早的修改所有的bug。  
  
   測試左移並沒有什么獨特的,只是讓測試人員在軟件開發生命周期內更早的參與進來,同時讓他們去理解需求、軟件設計、軟件架構以及軟件功能,也讓他們去向客戶、商業分析師和開發人員問問題,尋找答案,提供反饋結果已達到支持團隊的工作得可能性。參
 
與和理解會使測試人員獲取產品完整的知識,徹底想清楚各種場景,根據軟件行為設計實時的場景,這些都會幫助團隊在編碼完成之前識別出一些缺陷。這樣也可以更好的的體現我們作為一個QA的價值體                                                                

金字塔模型
通過之前對金字塔結構的學習,大概了解到了金字塔模型想告訴我們的幾個道理:
 
  1.越底層,越穩定。
 
  金字塔主要觀點認為 單元測試的穩定性高,需要多投入。
 
  2.越底層,越高效。
 
  程序的問題,最終還得落在具體的代碼上,所以底層的測試更容易發現問題。
 
  3.越底層,越低成本。
 
  越底層測試能越早發現問題,越早發現問題,修復的成本自然越低。
 
  4.越底層,越難實施。
 
  越底層的實現對 技術專業性要求越高,這點跟第三點有點矛盾,往往越專業的人才也意味着人力成本越高。
 
  綜合下金字塔模型,隨着前后端分離越來越清晰,我個人愚見提出了燈籠模型,拿 接口測試和UI層測試以及單元測試做了比較,從圖中各部分所占有的比重,可以一目了然的看出並最終認定接口(API)測試可以獲得較高的投資回報。
                                                                                   

 


 
  燈籠模型
  個人愚見,如有過錯,請批評指正:

  接口將前端和后端進行很好的分離,幫前后端實現數據交互,這樣在項目初期就可以和前端工程師討論需要的后端數據,然后后端根據需求開發后接口,將數據返回給前端,測試人員提前進入測試接口,前后端然后在各自開發自己模塊。

 項目遷移,以及后期維護,接口帶來的便利性,試想一下,如果沒有項目交付以后,后端人員將數據庫的某個字段的長度、類型修改后發版,而由於某些原因沒有及時通知前端工程師,而此時前端的獲取的這個字段的類型、長度是以前的,那么就可能引發線上事故。如

果前端技術牛叉,存儲獲取字段是一個變量,工作量還小點。只需要改變變量類型、長度即可,如果是一個差一點的沒有用變量,而前端又是好幾百個頁面都用到這個字段,這樣就造成后果無法想象的,但是用到接口就有不一樣了,如果出現類似的情況,后端人員只需

要將這個字段通過接口做處理是返回的字段保持一致即可,也就是分分鍾的事,可能用戶都沒有察覺就修復了。而且前端、后端、測試也很好排查問題,跑一下接口,查看接口文檔返回數據有差異,修給接口就可以,這樣處理問題效率也會大大提高。

  簡單概括:

①.越底層發現bug,它的修復成本是越低的。

 

②.前端隨便變,接口測好了,后端不用變,前后端是兩撥人開發的。

 

③.檢查系統的安全性、穩定性,前端傳參不可信,比如京東購物,前端價格不可能傳入-1元,但是通過接口可以傳入-1元。

 

④.如今的系統復雜度不斷上升,傳統的測試方法成本急劇增加且測試效率大幅下降,接口測試可以提供這種情況下的解決方案。

 

⑤. 接口測試相對容易實現自動化持續集成,且相對UI自動化也比較穩定,可以減少人工回歸測試人力成本與時間,縮短測試周期,支持后端快速發版需求。接口持續集成是為什么能低成本高收益的根源。

 

⑥.   現在很多系統前后端架構是分離的,從安全層面來說:

 

(1)、只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易), 需要后端同樣進行控制,在這種情況下就需要從接口層面進行驗證。

 

(2)、前后端傳輸、日志打印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM