python接口自動化(二)--什麼是接口測試、爲何要作接口測試(詳解)

簡介

  上一篇和你們一塊兒科普掃盲接口後,知道什麼是接口,接口類型等,對其有了大體瞭解以後,咱們就回到主題-接口測試。php

什麼是接口測試

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

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

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

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

 爲何要作接口測試

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

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

 


 
  燈籠模型
  我的愚見,若有過錯,請批評指正:

  接口將前端和後端進行很好的分離,幫先後端實現數據交互,這樣在項目初期就能夠和前端工程師討論須要的後端數據,而後後端根據需求開發後接口,將數據返回給前端,測試人員提早進入測試接口,先後端而後在各自開發本身模塊。後端

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

果前端技術牛叉,存儲獲取字段是一個變量,工做量還小點。只須要改變變量類型、長度便可,若是是一個差一點的沒有用變量,而前端又是好幾百個頁面都用到這個字段,這樣就形成後果沒法想象的,可是用到接口就有不同了,若是出現相似的狀況,後端人員只需微信

要將這個字段經過接口作處理是返回的字段保持一致便可,也就是分分鐘的事,可能用戶都沒有察覺就修復了。並且前端、後端、測試也很好排查問題,跑一下接口,查看接口文檔返回數據有差別,修給接口就能夠,這樣處理問題效率也會大大提升。前端工程師

  簡單歸納:架構

①.越底層發現bug,它的修復成本是越低的。前後端分離

 

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

 

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

 

④.現在的系統複雜度不斷上升,傳統的測試方法成本急劇增長且測試效率大幅降低,接口測試能夠提供這種狀況下的解決方案。

 

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

 

⑥.   如今不少系統先後端架構是分離的,從安全層面來講:

 

(1)、只依賴前端進行限制已經徹底不能知足系統的安全要求(繞過前面實在太容易), 須要後端一樣進行控制,在這種狀況下就須要從接口層面進行驗證。

 

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

相關文章
相關標籤/搜索