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
| SOAP | REST |
|---|---|
| 協議 | 獨立於協議的架構技術。它也可以使用 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 客戶端需遵循以下步驟:
開啟 Google Chrome。轉到 Web 商店。
搜尋“高階 REST 客戶端”。或點選下面的連結,然後安裝擴充套件程式。https://chrome.google.com/webstore/detail/advancedrestclient/hgmloofddffdnphfgcellkdfbfbjeloo/
轉到應用程式部分。選擇“高階 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 Continue | 410 Gone |
| 101 Switching Protocols | 411 Length Required |
| 102 Processing | 412 Precondition Failed |
| 413 Request Entity Too Large | |
| 2xx 成功 | 414 Request-URI Too Long |
| 200 OK | 415 Unsupported Media Type |
| 201 Created | 416 Requested Range Not Satisfiable |
| 203 Non-Authoritative Information | 426 Upgrade Required |
| 204 No Content | 428 Precondition Required |
| 205 Reset Content | 429 Too Many Requests |
| 206 Partial Content | 431 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 Choices | 501 Not Implemented |
| 301 Moved Permanently | 502 Bad Gateway |
| 302 Found | 503 Service Unavailable |
| 303 See Other | 504 Gateway Timeout |
| 304 Not Modified | 505 HTTP Version Not Supported |
| 305 Use Proxy | 506 Variant Also Negotiates (Experimental) |
| 306 (未使用) | 507 Insufficient Storage (WebDAV) |
| 307 Temporary Redirect | 508 Loop Detected (WebDAV) |
| 308 Permanent Redirect | 509 Bandwidth Limit Exceeded |
| 510 Not Extended | |
| 4xx 客戶端錯誤 | 511 Network Authentication Required |
| 400 Bad Request | 598 網路讀取超時錯誤 |
| 401 Unauthorized | 599 網路連線超時錯誤 |
| 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應用程式以及呼叫應用程式中的問題。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP