API 測試 | 瞭解 API 介面測試 | API 介面測試指南

Noah_WB發表於2023-04-07

什麼是 API?

API 是一個縮寫,它代表了一個 pplication P AGC 軟體覆蓋整個房間。API 是用於構建軟體應用程式的一組例程,協議和工具。API 指定一個軟體程式應如何與其他軟體程式進行互動。


例行程式:執行特定任務的程式。例程也稱為過程,函式或子例程。


協議:在兩個系統之間傳輸資料的格式。


簡單地說,API 代表一個 pplication P AGC 軟體覆蓋整個房間。API 充當兩個軟體應用程式之間的介面,並允許兩個軟體應用程式相互通訊。API 是可以由另一個軟體程式執行的軟體功能的集合。






讓我們以更平易近人的方式檢視一些 API 示例。


假定 API 是餐廳的服務員。


在餐廳,您可以根據選單上的可用商品下訂單。餐廳的服務員寫下您的訂單,然後將其交付給準備餐點的廚房。飯食準備好後,服務員從廚房拿起您的食物,並在您的餐桌旁將其提供給您。


在這種情況下,服務員的角色類似於 API。作為服務員,API 從源接收請求,將該請求接收到資料庫,從資料庫中獲取請求的資料,然後將響應返回給源。


現在讓我們來看另一個例子。


如果您使用的是航班服務引擎,請說出 Expedia,在其中搜尋特定日期的航班。出發地,目的地,到達日期和返回日期等資料後,單擊搜尋。Expedia 根據您的搜尋詳細資訊透過 API 向航空公司傳送請求。然後,API 將航空公司對您的請求的響應傳送回 Expedia。


API 從使用者那裡獲取請求並給出響應,而不會暴露內部邏輯。API 就像一個抽象的 OOPS 概念。




什麼是 API 測試?



API 測試是一種軟體測試,涉及直接測試 API,並且是整合測試的一部分,以檢查 API 是否在應用程式的功能,可靠性,效能和安全性方面達到期望。在 API 測試中,我們的主要重點是軟體體系結構的業務邏輯層。API 測試可以在包含多個 API 的任何軟體系統上執行。API 測試不會專注於應用程式的外觀。API 測試與 GUI 測試完全不同。


讓我們看看 UI 測試與 API 測試有何不同?


UI(使用者介面)測試是測試應用程式的圖形介面部分。它的主要重點是測試應用程式的外觀。另一方面,API 測試支援兩個不同軟體系統之間的通訊。它的主要重點是應用程式的業務層。


API 測試型別?

API 測試通常涉及以下實踐:


單元測試: 測試單個操作的功能

功能測試: 透過使用一起測試的一組單元測試結果來測試更廣泛場景的功能

負載測試: 測試負載下的功能和效能

執行時 / 錯誤檢測: 監視應用程式以識別問題,例如異常和資源洩漏

安全測試:  確保 API 的實施不受外部威脅的影響

UI 測試:此測試  是端到端整合測試的一部分,以確保使用者介面的各個方面都能按預期執行

互操作性和 WS 一致性測試:  互操作性和 WS 一致性測試是一種適用於 SOAP API 的測試型別。透過確保符合 Web 服務互操作性概要檔案來檢查 SOAP API 之間的互操作性。 對 WS- * 遵從性進行了測試,以確保諸如 WS-Addressing,WS-Discovery,WS-Federation,WS-Policy,WS-Security 和 WS-Trust 等標準得到正確實施和利用

滲透測試:  查詢來自攻擊者的應用程式漏洞

模糊測試:  透過強制輸入系統來測試 API,以嘗試強制崩潰

API 的常見測試:

我們在 API 上執行的一些常見測試如下。


驗證返回值是否基於輸入條件。應根據請求驗證 API 的響應。

在 API 更新任何資料結構時驗證系統是否正在驗證結果

驗證 API 是觸發其他事件還是請求其他 API

在沒有返回值的情況下驗證 API 的行為

API 測試的優勢:

與 GUI 測試相比,API 測試是省時的。API 測試自動化需要更少的程式碼,因此可以提供更快,更好的測試範圍。

API 測試可幫助我們降低測試成本。透過 API 測試,我們可以在 GUI 測試之前發現一些小錯誤。這些小錯誤將在 GUI 測試期間變得更大。因此,在 API 測試中發現這些錯誤對公司而言是具有成本效益的。

API 測試是獨立於語言的。

API 測試對測試核心功能很有幫助。我們可以在沒有使用者介面的情況下測試 API。在 GUI 測試中,我們需要等到應用程式可用以測試核心功能。

API 測試可幫助我們降低風險。

API 測試中到底需要驗證什麼?

基本上,在 API 測試中,我們使用已知資料向 API 傳送請求,然後分析響應。


資料準確性

HTTP 狀態碼

響應時間

API 返回任何錯誤時的錯誤程式碼

授權檢查

非功能測試,例如效能測試,安全性測試

用於 API 測試的工具:

用於 API 測試的一些工具如下:


Postman

Katalon Studio

SoapUI

Assertible

Tricentis Tosca

Apigee

JMeter

Rest-Assured

Karate DSL

API Fortress

Parasoft

HP QTP(UFT)

vREST

Airborne

API Science

APIary Inspector

Citrus Framework

Hippie-Swagger

HttpMaster Express

Mockbin

Ping API

Pyresttest

Rest Console

RoboHydra Server

SOAP Sonar

Unirest

WebInject

API 測試和單元測試之間的區別?

單元測試:


單元測試由開發團隊進行

單元測試是白盒測試的一種形式

在將程式碼包含在構建中之前,先進行單元測試

原始碼涉及單元測試

在單元測試中,測試範圍是有限的,因此僅考慮基本功能進行測試

API 測試:


API 測試由質量檢查小組進行

API 測試是黑盒測試的一種形式

API 測試在構建可用於測試之後進行

API 測試中不涉及原始碼

在 API 測試中,測試的範圍很廣,因此要考慮所有正常執行的問題以進行測試

API 測試中的挑戰:

在進行 API 測試時,我們面臨的一些挑戰如下


選擇合適的引數及其組合

正確分類引數

需要正確的呼叫排序,因為這可能導致測試覆蓋範圍不足

驗證和驗證輸出

由於沒有 GUI,因此很難提供輸入值

我們在執行 API 測試時會遇到的錯誤型別:


    執行 API 測試時觀察到的問題是


壓力,效能和安全性問題

功能重複或缺失

可靠性問題

訊息傳遞不當

不相容的錯誤處理機制

多執行緒問題

錯誤的錯誤

API 測試做法:

測試預期結果

傳送一系列 API 負載測試,給系統增加壓力

按測試類別對 API 測試用例進行分組

使用所有可能的輸入組合建立測試案例,以完整地覆蓋測試

優先處理 API 函式呼叫,使其易於測試

建立測試以處理無法預料的問題

儘可能自動執行 API 測試



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026910/viewspace-2944430/,如需轉載,請註明出處,否則將追究法律責任。

相關文章