Web API 的 Web 服務(wù)分為兩大類:SOAP 和 REST。

SOAP(簡單對象訪問協(xié)議)是 W3C 標(biāo)準(zhǔn)定義的標(biāo)準(zhǔn)協(xié)議,用于發(fā)送和接收 Web 服務(wù)請求和響應(yīng)。?

REST(表述性狀態(tài)傳輸)是使用 HTTP 的基于 Web 標(biāo)準(zhǔn)的架構(gòu)。與基于 SOAP 的 Web 服務(wù)不同,RESTful Web API 沒有官方標(biāo)準(zhǔn)。

以下是 API 測試需要了解的 10 個基本技巧:

了解API需求

在測試 API 之前,您需要回答以下問題以徹底了解 API 的要求:

了解 API 的用途將為您準(zhǔn)備好用于輸入和輸出的測試數(shù)據(jù)奠定堅實(shí)的基礎(chǔ)。此步驟還可以幫助您定義驗(yàn)證方法。例如,對于某些 API,您將根據(jù)數(shù)據(jù)庫驗(yàn)證響應(yīng);對于其他一些情況,最好根據(jù)其他 API 驗(yàn)證響應(yīng)。

通常,應(yīng)用程序的 API 用于操作其資源,包括讀取 (GET)、創(chuàng)建 (POST)、更新 (PUT) 和刪除 (DELETE)。了解 API 的用途將為您準(zhǔn)備好用于輸入和輸出的 API 測試數(shù)據(jù)奠定堅實(shí)的基礎(chǔ)。

此外,此步驟還可以幫助您定義驗(yàn)證方法。例如,對于某些 API,您將根據(jù)數(shù)據(jù)庫驗(yàn)證響應(yīng);對于其他一些情況,最好根據(jù)其他 API 驗(yàn)證響應(yīng)。

例如,“創(chuàng)建用戶”API 的輸出將作為“獲取用戶”API 的輸入進(jìn)行驗(yàn)證。 “獲取用戶”API 的輸出可以用作“更新用戶”API 的輸入,等等。

指定API輸出狀態(tài)

在 API 測試中需要驗(yàn)證的最常見的 API 輸出是響應(yīng)狀態(tài)代碼。

驗(yàn)證響應(yīng)代碼是否等于 200 來決定 API 測試是否通過或失敗對于新的 API 測試人員來說很熟悉。這并不是一個錯誤的驗(yàn)證。但是,它并不能反映API的所有測試場景。

在全球標(biāo)準(zhǔn)中,所有 API 響應(yīng)狀態(tài)代碼都分為五個類(或類別)。狀態(tài)代碼的第一位數(shù)字定義響應(yīng)的類別。最后兩位數(shù)字沒有任何類別或分類作用。

第一位數(shù)字有五個值:

然而,API的實(shí)際響應(yīng)狀態(tài)碼是由構(gòu)建該API的開發(fā)團(tuán)隊指定的。因此作為測試人員,您需要驗(yàn)證是否:

專注于小型功能性API

在測試項目中,總有一些API比較簡單,只有一兩個輸入,例如登錄API、獲取Token API、健康檢查API等。但這些API是必需的,被視為進(jìn)入的“大門”更多 API。在其他 API 之前先關(guān)注這些 API 將確保 API 服務(wù)器、環(huán)境和身份驗(yàn)證正常工作。

您還應(yīng)該避免在一個測試用例中測試多個 API。如果出現(xiàn)錯誤,那就很痛苦了,因?yàn)槟惚仨毎错樞蛘{(diào)試 API 生成的數(shù)據(jù)流。讓您的測試盡可能簡單。在某些情況下,您需要調(diào)用一系列API來實(shí)現(xiàn)端到端的測試流程。然而,這些任務(wù)應(yīng)該在所有 API 都經(jīng)過單獨(dú)測試之后進(jìn)行。

組織API端點(diǎn)

一個測試項目可能有幾個甚至上百個API進(jìn)行測試。我們強(qiáng)烈建議您將它們組織成類別,以便更好地進(jìn)行測試管理。它需要一個額外的步驟,但將極大地幫助您創(chuàng)建具有高覆蓋率和集成度的測試場景。以JIRA的API為例:

同一類別中的 API 共享一些通用信息,例如資源類型、路徑等。使用相同的結(jié)構(gòu)組織測試將使您的測試可重用并可通過集成流程進(jìn)行擴(kuò)展。

利用自動化功能進(jìn)行 API 測試

利用自動化盡可能快地加快 API 測試流程。以下是自動化 API 測試的一些顯著優(yōu)勢:

選擇合適的自動化工具

利用 API 測試自動化功能的進(jìn)一步步驟是從市場上數(shù)百個選項中選擇大多數(shù)或一組合適的工具。以下是選擇 API 測試自動化測試工具時應(yīng)考慮的一些標(biāo)準(zhǔn):

這是一項重要任務(wù),因?yàn)槲唇?jīng)授權(quán)您無法開始測試 API。

選擇合適的驗(yàn)證方法

響應(yīng)狀態(tài)代碼說明請求的狀態(tài),而響應(yīng)正文內(nèi)容是 API 通過給定輸入返回的內(nèi)容。

API 響應(yīng)內(nèi)容因數(shù)據(jù)類型和大小而異。響應(yīng)可以是純文本、JSON 數(shù)據(jù)結(jié)構(gòu)、XML 文檔等。它們可以是一個簡單的幾個單詞的字符串(甚至是空的),也可以是一個一百頁的 JSON/XML 文件。因此,為給定的 API 選擇合適的驗(yàn)證方法至關(guān)重要。

Katalon Studio提供了豐富的庫來使用匹配、正則表達(dá)式、JsonPath和XmlPath來驗(yàn)證不同的數(shù)據(jù)類型。

一般來說,驗(yàn)證 API 響應(yīng)正文內(nèi)容有一些基本方法:

將整個響應(yīng)正文內(nèi)容與預(yù)期信息進(jìn)行比較

此方法適用于具有靜態(tài)內(nèi)容的簡單響應(yīng)。動態(tài)信息如日期時間、遞增的ID等都會給斷言帶來麻煩。

比較響應(yīng)的每個屬性值

對于 JSON 或 XML 格式的響應(yīng),很容易獲取給定鍵或?qū)傩缘闹?。因此,這種方法在驗(yàn)證動態(tài)內(nèi)容或個體值而不是整個內(nèi)容時很有用。

與正則表達(dá)式比較匹配

與驗(yàn)證各個屬性值一起,該方法用于驗(yàn)證具有特定模式的數(shù)據(jù)響應(yīng)以處理復(fù)雜的動態(tài)數(shù)據(jù)。

每種驗(yàn)證方法都有優(yōu)點(diǎn)和缺點(diǎn),并且沒有一刀切的選擇。您需要選擇最適合您的測試項目的解決方案。

創(chuàng)建積極和消極測試

API 測試需要進(jìn)行正向和負(fù)向測試,以確保 API 正常工作。由于 API 測試被認(rèn)為是一種黑盒測試,因此兩種類型的測試都是由輸入和輸出數(shù)據(jù)驅(qū)動的。對于測試場景生成有一些建議:

現(xiàn)場測試流程

強(qiáng)烈建議在測試過程實(shí)時時安排每天執(zhí)行 API 測試。由于 API 測試執(zhí)行快速、穩(wěn)定且足夠小,因此可以輕松地以最小的風(fēng)險在當(dāng)前測試流程中添加更多測試。這只有使用具有以下功能的自動化 API 測試工具才能實(shí)現(xiàn):

測試過程完成后,您每天都可以得到這些測試的結(jié)果。如果發(fā)生測試失敗,您可以檢查輸出并驗(yàn)證問題以獲得正確的解決方案。

不要低估API自動化測試

API 測試流程非常簡單,主要分為三個步驟:

API 測試中最涉及的部分不是發(fā)送請求或接收響應(yīng)。它們是測試數(shù)據(jù)管理和驗(yàn)證。通常,測試一些第一個 API(例如登錄、查詢某些資源等)非常簡單。 

隨著API的深入,測試任務(wù)變得越來越困難。因此,API測試任務(wù)很容易被低估。

在某個時間點(diǎn),您會發(fā)現(xiàn)自己正在為測試數(shù)據(jù)和驗(yàn)證方法選擇一個好的方法。這是因?yàn)榉祷氐臄?shù)據(jù)結(jié)構(gòu)相似,但在測試項目中卻不相同。

此外,如果您應(yīng)該逐個驗(yàn)證 JSON/XML 數(shù)據(jù),或者使用對象映射來利用編程語言的強(qiáng)大功能,那么選擇正確的方法將很困難。

強(qiáng)烈建議考慮 API 自動化測試一個真正的開發(fā)項目。它的結(jié)構(gòu)應(yīng)該是可擴(kuò)展、可重用和可維護(hù)的。

原文鏈接:10 API Testing Tips for Beginners (SOAP & REST)

上一篇:

Service Mesh 和 API Gateway 關(guān)系深度探討

下一篇:

超越 HTTP API:Web Assembly 和系統(tǒng)集成的未來
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費(fèi)

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費(fèi)