天天看點

API測試介紹

API測試的概念

我們常說的是比較狹義的API,指的是Web service或者Web API。

是以一般API測試指的是:直接測試應用程式程式設計接口(API),并作為內建測試的一部分來确定它們是否滿足功能、可靠性、性能和安全性的期望。

API測試的位置

API測試介紹
  • 應用程式通常有三層:表示(UI)層、業務邏輯層(API層)和資料層。
  • API層包含應用程式的業務邏輯——使用者如何與應用程式的服務、資料或功能互動的規則。
  • 由于業務邏輯層直接觸及資料層和表示層,是以它為QA和開發團隊提供了持續測試的最佳場所。雖然傳統的測試主要集中在UI上,但是API測試的優勢正變得衆所周知。

API測試的優勢

  • 更早期的測試

    一旦實作了邏輯,就可以建構測試來驗證響應和資料的正确性,而不必等待建構前端

  • 更簡單的測試維護

    UI是不斷變化的,但是API沒有這樣的挑戰,API測試現在被認為是自動化測試的關鍵,因為API現在是應用程式邏輯的主要接口。

  • 更快的解決問題

    當API測試失敗時,我們确切地知道系統哪裡壞了,哪裡可以找到缺陷。

  • 更快的測試速度和更廣的覆寫範圍

    300個UI測試可能需要30小時才能運作。300個API測試可能在3分鐘内運作。這意味着将在更短的時間内發現更多的bug,同時也将立即修複它們。

API測試的流程

  1. 開始時間

    在接口文檔出來的時候就可以進行接口測試了。

  2. 測試用例

    根據接口文檔去撰寫接口用例。

  3. 測試環境

    準備測試環境。

  4. 測試工具

    測試接口有兩種方式,一是用代碼腳本去驅動,二是使用工具測試。

  5. 測試執行

    根據執行結果分析問題,定位問題,并對測試過程進行調優。

  6. 測試報告

    測試完成後進行測試總結。

API測試工具

抓包工具:Charles,Fiddler,Wireshark

測試腳本:Python,Java,Go

排行版:十大最佳API測試工具(SOAP和REST API測試工具)

(截至2019年12月14日)

  • ReadyAPI
  • ACCELQ
  • Katalon Studio
  • Postman
  • REST-Assured
  • Swagger.io
  • JMeter
  • Karate DSL
  • Airborne
  • APIGee

以下是top6的介紹,其實感覺我們這邊用的最多的也是postman,swagger和Jmeter,其他的接觸的不多呀。

産品 ReadyAPI ACCELQ Katalon Studio Postman REST-Assured Swagger.io
測試内容 web(UI&API) web(UI&API) web(UI&API),Mobile apps API REST API API生命周期的工具。
适合用于 API和web服務的功能、安全性和負載測試。 無代碼自動化邏輯,完整的測試管理,API回歸規劃和360跟蹤 自動化測試 API測試 在Java域中測試REST服務 适合API設計
價格 昂貴 付費+免費 免費 付費+免費 免費 付費+免費
相容平台 Windows,Linux ,MacOS 基于雲計算的連續測試 Windows,Linux ,MacOS Windows,Linux ,MacOS - -

API 測試内容

API測試介紹

API評判标準

  • 業務功能覆寫是否完整
  • 業務規則覆寫是否完整
  • 參數驗證是否達到要求(邊界、業務規則)
  • 接口異常場景覆寫是否完整
  • 接口覆寫率是否達到要求
  • 代碼覆寫率是否達到要求
  • 性能名額是否滿足要求
  • 安全名額是否滿足要求(sql注入)

單個API測試三步驟

再往小了說,我們現在接觸的API請求,主要模拟用戶端向伺服器發送請求封包,伺服器接收請求封包後對相應的封包做處理并向用戶端傳回應答,用戶端接收應答的過程,總共隻有以下這三步。

  • 發送帶有必要輸入資料的請求
  • 擷取具有輸出資料的響應
  • 驗證響應是否按要求傳回

是以我們在驗證時,需要驗證的也常常是以下這幾點:

  • HTTP響應碼

    1xx(臨時響應)

    2xx (成功)

    3xx (重定向)

    4xx(請求錯誤)

    5xx(伺服器錯誤)

  • 傳回資料格式

    傳回的資料格式是json或者text或者是其他

  • 傳回資料類型

    如果是json格式的資料,那麼傳回的字段是string或者int或者其他的格式

  • 傳回資料資訊

    傳回的資訊是不是和資料庫裡的一緻,或者是否符合預期的情況。

總結

是以API測試說難不難,說簡單也絕不簡單,現在的API測試是自動化測試最好的切入點,因為相比于經常變化的UI,API一旦穩定就不容易發生變化。

參考文獻

【1】https://blog.csdn.net/ddhsea/article/details/79405996

【2】https://www.cnblogs.com/georgexu/p/11224011.html

【3】https://blog.csdn.net/wbj_code_life/article/details/8161275