REST API 測試教程 - 示例手動測試用例


API

應用程式程式設計介面 (API) 是一種計算介面,用於在兩個獨立的系統之間進行通訊和資訊交換。執行 API 的系統涉及另一個系統也可以執行的功能。它定義了要發出的請求、如何發出請求、可以使用哪些格式等,這些都在兩個不同的系統之間。

API 測試

它是一種評估 API 的軟體測試。其目的是確定介面的功能、可靠性、效能和安全性。我們使用軟體傳送呼叫、獲取輸出並記錄系統的響應,而不是標準的使用者輸入(如鍵盤和輸出)。這些測試與 GUI 測試完全不同,並且不強調系統架構的業務邏輯層。API 的自動化測試需要一個能夠透過 API 互動的應用程式。

REST API

REST API 也稱為 RESTful API,是一種符合 REST 限制並允許與 RESTful 網路服務互動的 API。REST API 測試是一種開源自動化技術,用於測試 Web 應用程式的 RESTful API。它通常用於測試基於 JSON 和 XML 的 Web 應用程式。它與所有方法相容:GET、PUT、POST、PATCH 和 DELETE。REST 是一個 Java 庫。

此測試的目的是透過傳送 HTTP 或 HTTPS 請求來估計和記錄 REST API 的響應,以確定 REST API 是否正常工作。此測試透過以下方法完成:GET、PUT、POST、PATCH 和 DELETE。

REST——表述性狀態轉移,是一種架構技術和用於開發 Web 服務的通訊方式。它是構建 API 的邏輯選擇,並允許使用者有效地連線和使用基於雲的服務。API 是訪問基於 Web 的應用程式的一組程式設計指令。也就是說,它是一組程式用來互動並使用彼此的功能來收集資訊的命令。

API 的一個例子是 Google 的網站,它可以為許多功能提供 API,例如搜尋、翻譯、日曆等。

主要有四種 API 測試方法:

  • GET - 此方法用於透過 URI(統一資源識別符號)從伺服器收集資訊。此方法只能提取資訊,不應以任何方式影響資料。

  • POST - 此方法用於建立新實體,以及透過 HTML 表單將資料(例如客戶資訊、檔案上傳等)傳送到伺服器。

  • PUT - 此方法用於更新實體或建立新實體。

  • DELETE - 此方法用於刪除 URI 提供的目標資源的現有表示。

SOAP 與 REST

SOAPREST
協議獨立於協議的架構技術。它也可以使用 SOAP 網路服務。
簡單物件訪問協議表述性狀態轉移
使用服務介面進行業務邏輯。使用 URI 進行業務邏輯。
遵循嚴格的標準。沒有如此嚴格的標準,但可以遵循一些標準來開發 Web 服務。
需要更多頻寬。輕量級。
定義自己的安全性。繼承自傳輸的安全措施。
僅使用 XML 格式在請求正文中傳送資料。使用 XML、JSON 和其他格式在請求正文中傳送資料。
使用 HTTP、SMTP 和其他協議。僅 HTTP 協議。
訊息、操作等的繫結規則寫在 WSDL 中。使用 WADL 格式來描述提供的功能。
標準化的。非標準化的。
由於存在規則、繫結等,需要更多時間學習。由於其簡單性,需要較少的學習時間。

REST API 測試的不同方法

  • 手動測試

  • 自動化測試

REST API 測試的過程

此測試需要一個應用程式與示例 API 互動。API 測試需要以下兩件事:

  • 操作 API 的工具/框架。

  • 測試示例 REST API 的程式碼。此程式碼必須由測試人員編寫。

REST API 測試用例工具:

  • 高階 REST 客戶端

  • Postman-REST 客戶端

  • LINUX 中的 Curl

在本文中,我們將使用高階 REST 客戶端。

如何獲取高階 REST 客戶端

獲取高階 REST 客戶端需遵循以下步驟:

測試 RESTful API 的步驟

我們使用 Google Chrome 中的 REST 客戶端擴充套件程式。安裝完成後,請按照以下步驟測試 RESTful API:

  • 開啟高階 REST 客戶端。安裝高階 REST 客戶端。成功安裝後啟動它。

  • 在文字框中輸入要測試的 API 的 URL。

  • 在 API 測試中選擇 HTTP 方法,例如 POST。

  • 在“標頭”文字框中設定標頭。然後,單擊“插入標頭集”。

  • 單擊“使用此集合”。

  • 提供正文內容。

    • 開啟“正文”選項卡。

    • 選擇正文內容型別和編輯器檢視。

    • 選擇編輯器檢視:原始輸入。

    • 轉到有效負載。傳遞要測試的 API 的請求正文,例如鍵值對:{“key-1”:“value-1”, “key-2”:“value-2”}。對於 post API,傳遞正文或引數。

  • 提交詳細資訊以開始測試。

    • 單擊“傳送”。

    • 要檢視響應標頭,請單擊“詳細資訊”。

驗證結果

在 Web API 測試中,主要確定的是響應程式碼、響應訊息和響應正文。在 API 測試期間可能遇到的響應程式碼為:



1xx 資訊4xx 客戶端錯誤
100 Continue410 Gone
101 Switching Protocols411 Length Required
102 Processing412 Precondition Failed

413 Request Entity Too Large
2xx 成功414 Request-URI Too Long
200 OK415 Unsupported Media Type
201 Created416 Requested Range Not Satisfiable
203 Non-Authoritative Information426 Upgrade Required
204 No Content428 Precondition Required
205 Reset Content429 Too Many Requests
206 Partial Content431 Request Header Fields Too Large
207 Multi-Status (WebDAV)451 Unavailable For Legal Reasons
已報告 (WebDAV)499 Client Closed Request (Nginx)
226 IM Used

5xx 伺服器錯誤
3xx 重定向500 Internal Server Error
300 Multiple Choices501 Not Implemented
301 Moved Permanently502 Bad Gateway
302 Found503 Service Unavailable
303 See Other504 Gateway Timeout
304 Not Modified505 HTTP Version Not Supported
305 Use Proxy506 Variant Also Negotiates (Experimental)
306 (未使用)507 Insufficient Storage (WebDAV)
307 Temporary Redirect508 Loop Detected (WebDAV)
308 Permanent Redirect509 Bandwidth Limit Exceeded

510 Not Extended
4xx 客戶端錯誤511 Network Authentication Required
400 Bad Request598 網路讀取超時錯誤
401 Unauthorized599 網路連線超時錯誤
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict

API 測試中的挑戰

  • 確保測試更改 API 呼叫的引數,以便驗證其工作並檢測故障。這涉及探索邊緣條件和分配常用引數。

  • 為具有多個引數的呼叫建立引數值組合。

  • 確定 API 呼叫的內容。這包括設定環境條件(例如外圍裝置、檔案等)以及內部儲存影響 API 的資料。

  • 根據要執行的序列函式對 API 呼叫進行排序。

  • 從連續呼叫中獲得 API 的有用結果。

REST API 測試工具

JMeter − 它是一個廣泛使用的開源效能測試工具。它由Apache開發,完全用Java編寫。它旨在測試功能並測量效能。它還可以用於分析和測量Web應用程式和各種服務的效能。最初,它用於測試Web應用程式或FTP應用程式。如今,它也用於功能測試、資料庫伺服器測試等等。

此工具透過模擬真實世界的行為和測試環境來載入Web伺服器、網站和Web應用程式。它提供使用者友好的GUI,易於安裝,並提供測試策略、模擬和其他效能測試功能。它簡化了效能測試任務。

結論

API是一組訪問基於Web的應用程式的程式設計指令。REST API測試中的四種主要方法是:GET、POST、DELETE和PUT。在API測試中,會檢查響應程式碼、響應訊息和響應正文。API測試可以防止API應用程式以及呼叫應用程式中的問題。

更新於:2021年9月22日

14K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.