
7 大 REST API 安全威脅
Web API 的 Web 服務分為兩大類:SOAP 和 REST。
SOAP(簡單對象訪問協議)是 W3C 標準定義的標準協議,用于發送和接收 Web 服務請求和響應。?
REST(表述性狀態傳輸)是使用 HTTP 的基于 Web 標準的架構。與基于 SOAP 的 Web 服務不同,RESTful Web API 沒有官方標準。
在測試 API 之前,您需要回答以下問題以徹底了解 API 的要求:
了解 API 的用途將為您準備好用于輸入和輸出的測試數據奠定堅實的基礎。此步驟還可以幫助您定義驗證方法。例如,對于某些 API,您將根據數據庫驗證響應;對于其他一些情況,最好根據其他 API 驗證響應。
通常,應用程序的 API 用于操作其資源,包括讀取 (GET)、創建 (POST)、更新 (PUT) 和刪除 (DELETE)。了解 API 的用途將為您準備好用于輸入和輸出的 API 測試數據奠定堅實的基礎。
此外,此步驟還可以幫助您定義驗證方法。例如,對于某些 API,您將根據數據庫驗證響應;對于其他一些情況,最好根據其他 API 驗證響應。
例如,“創建用戶”API 的輸出將作為“獲取用戶”API 的輸入進行驗證。 “獲取用戶”API 的輸出可以用作“更新用戶”API 的輸入,等等。
在 API 測試中需要驗證的最常見的 API 輸出是響應狀態代碼。
驗證響應代碼是否等于 200 來決定 API 測試是否通過或失敗對于新的 API 測試人員來說很熟悉。這并不是一個錯誤的驗證。但是,它并不能反映API的所有測試場景。
在全球標準中,所有 API 響應狀態代碼都分為五個類(或類別)。狀態代碼的第一位數字定義響應的類別。最后兩位數字沒有任何類別或分類作用。
第一位數字有五個值:
然而,API的實際響應狀態碼是由構建該API的開發團隊指定的。因此作為測試人員,您需要驗證是否:
在測試項目中,總有一些API比較簡單,只有一兩個輸入,例如登錄API、獲取Token API、健康檢查API等。但這些API是必需的,被視為進入的“大門”更多 API。在其他 API 之前先關注這些 API 將確保 API 服務器、環境和身份驗證正常工作。
您還應該避免在一個測試用例中測試多個 API。如果出現錯誤,那就很痛苦了,因為你必須按順序調試 API 生成的數據流。讓您的測試盡可能簡單。在某些情況下,您需要調用一系列API來實現端到端的測試流程。然而,這些任務應該在所有 API 都經過單獨測試之后進行。
一個測試項目可能有幾個甚至上百個API進行測試。我們強烈建議您將它們組織成類別,以便更好地進行測試管理。它需要一個額外的步驟,但將極大地幫助您創建具有高覆蓋率和集成度的測試場景。以JIRA的API為例:
同一類別中的 API 共享一些通用信息,例如資源類型、路徑等。使用相同的結構組織測試將使您的測試可重用并可通過集成流程進行擴展。
利用自動化盡可能快地加快 API 測試流程。以下是自動化 API 測試的一些顯著優勢:
利用 API 測試自動化功能的進一步步驟是從市場上數百個選項中選擇大多數或一組合適的工具。以下是選擇 API 測試自動化測試工具時應考慮的一些標準:
這是一項重要任務,因為未經授權您無法開始測試 API。
響應狀態代碼說明請求的狀態,而響應正文內容是 API 通過給定輸入返回的內容。
API 響應內容因數據類型和大小而異。響應可以是純文本、JSON 數據結構、XML 文檔等。它們可以是一個簡單的幾個單詞的字符串(甚至是空的),也可以是一個一百頁的 JSON/XML 文件。因此,為給定的 API 選擇合適的驗證方法至關重要。
Katalon Studio提供了豐富的庫來使用匹配、正則表達式、JsonPath和XmlPath來驗證不同的數據類型。
一般來說,驗證 API 響應正文內容有一些基本方法:
將整個響應正文內容與預期信息進行比較
此方法適用于具有靜態內容的簡單響應。動態信息如日期時間、遞增的ID等都會給斷言帶來麻煩。
比較響應的每個屬性值
對于 JSON 或 XML 格式的響應,很容易獲取給定鍵或屬性的值。因此,這種方法在驗證動態內容或個體值而不是整個內容時很有用。
與正則表達式比較匹配
與驗證各個屬性值一起,該方法用于驗證具有特定模式的數據響應以處理復雜的動態數據。
每種驗證方法都有優點和缺點,并且沒有一刀切的選擇。您需要選擇最適合您的測試項目的解決方案。
API 測試需要進行正向和負向測試,以確保 API 正常工作。由于 API 測試被認為是一種黑盒測試,因此兩種類型的測試都是由輸入和輸出數據驅動的。對于測試場景生成有一些建議:
強烈建議在測試過程實時時安排每天執行 API 測試。由于 API 測試執行快速、穩定且足夠小,因此可以輕松地以最小的風險在當前測試流程中添加更多測試。這只有使用具有以下功能的自動化 API 測試工具才能實現:
測試過程完成后,您每天都可以得到這些測試的結果。如果發生測試失敗,您可以檢查輸出并驗證問題以獲得正確的解決方案。
API 測試流程非常簡單,主要分為三個步驟:
API 測試中最涉及的部分不是發送請求或接收響應。它們是測試數據管理和驗證。通常,測試一些第一個 API(例如登錄、查詢某些資源等)非常簡單。
隨著API的深入,測試任務變得越來越困難。因此,API測試任務很容易被低估。
在某個時間點,您會發現自己正在為測試數據和驗證方法選擇一個好的方法。這是因為返回的數據結構相似,但在測試項目中卻不相同。
此外,如果您應該逐個驗證 JSON/XML 數據,或者使用對象映射來利用編程語言的強大功能,那么選擇正確的方法將很困難。
強烈建議考慮 API 自動化測試一個真正的開發項目。它的結構應該是可擴展、可重用和可維護的。
原文鏈接:10 API Testing Tips for Beginners (SOAP & REST)