介面(API)測試理念

什麼是介面測試

  介面測試就是針對軟體對外提供服務的介面的輸入輸出進行測試,以及介面間相互邏輯的測試,驗證介面功能與介面描述文檔的一致性;

  測試的重點是檢查數據交互、傳遞、和控制管理過程以及系統間的相互依賴關係等。

  介面測試不關注介面

介面分為兩類

  外部介面:子系統與子系統之間、不同的系統之間(12306APP–支付寶介面)

  外部介面:系統內部,功能的外部調用,如:註冊介面、登錄介面、訂單介面、支付介面;每個介面調用的方式都不一樣的;

介面測試的重要性:

  相對於UI測試,介面測試執行速度更快

  相對於UI測試,能更早的發現問題,將BUG控制在項目前期階段

  相對於UI測試,粒度更細,更能發現底層問題;

  相對於UI測試,發現和解決問題的效費比較高

  介面測試執行速度更快:冒煙測試,回歸測試,在postman運行即可;

  從開發到測試時間:編碼>單元測試>聯調>開發提測>冒煙測試>系統測試;一般功能測試都在開發提測後,這時候發現的問題可能會較多,這樣是對測試人員一種不好的,因為需要編寫文檔,跟開發進行交涉(交涉這個問題不是BUG,這個問題不需要修改等等),所以,我們可以在聯調階段進行借入介面測試,這樣,能更早發現問題,解決,而且測試的粒度更細,更加能發現底層問題。

效費示意圖:層層遞減,從單元測試到介面測試到UI測試,發現的問題越來越少;

介面測試流程如下: 

設計介面形成文檔>介面資訊 > 用例設計 > 介面發包 > 驗證結果
    獲取介面資訊
  • 通過介面文檔或抓包來獲取介面的基本調用方式和返回
    介面測試用例設計
  • 根據獲取到的介面資訊,按照介面測試用例設計方法,設計參數和預期返回結果
    執行介面測試:
  • 使用工具或者其他方法,對介面測試用例進行錄入並執行
   介面測試報告
  • 獲取介面返回的結果,進行解析和驗證。並形成測試報告

 

介面測試工具:

  抓包工具:

    • Fiddler:應用層抓包工具
    • Charles:應用層抓包工具
    • Wireshark:底層協議抓包

  介面測試工具:

    • 工具類:
      • postman
      • jmeter
      • soapui
      • loadrunner
      • ……
    • 程式碼類:
      • Java:httpclient
      • Python:requests、httprunner

 

初學階段,如有不對,歡迎指點