HOME > 最新消息> 品牌新訊

API 測試:簡介

2022/04/26

數位化的企業正在徹底改變他們建立和提供軟體的方式。這表明應用程式只使用內部工具的日子已經遠去。相反的,當今的應用程式越來越依靠外部 API 和第三方應用程式提供者 (而它們又依靠其他 API 和應用程式)。

雖然這種類型的模組化可以提供產品彈性和快速開發能力,但一旦有問題出現,處理起來可能很棘手。在這個生產鏈中,即使只是一個元件出錯,也會對相關元件造成骨牌效應,而過去封閉系統中類似的情況則只會造成個別的事件。

在微服務方法中,這個問題更進一步被放大了,因為開發人員無須使用應用程式的其他元件即可部署單一服務。以傳統方式設計的元件往往更大,並且同一層中包含許多功能,微服務的離散本質則使它們更有彈性,並能夠隨著負載需求增加而快速擴展。不過如果沒有合適的工具,故障排除將變得極其困難,因為微服務會使故障點成倍增加。
 




因此,如果您的產品有使用外部 API,那麼除了可用性之外,測試和監控它同樣很重要。您還需要密切關注效能、資料驗證和流程、功能變更和安全性。

為什麼測試 API 效能很重要
影響網站效能或使用者操作的 API 故障對貴公司影響甚大——即使問題是由第三方提供者造成的。而且,視 API 對交易流程的重要性,這個故障可能會立即碰觸您的忍受底限。

例如,如果您網站上結帳流程的關鍵元件是位置搜尋,並使用第三方 API 提供位置搜尋功能,那麼如果該 API 無法正常工作,潛在客戶就無法成功結帳。


 
Parkmobile 使用 API 向客戶顯示可用的停車位置 

或者想像一下,您開發了一個需要從社交媒體平台進行驗證的應用程式。如果該社交媒體平台的 API 停擺,使用者可能就無法登入您的系統。

作為開發人員或網站所有者,您可能會認為使用第三方服務的好處大於這類出錯的風險。為了準確評估風險並了解這些服務隨時間所產生的影響,監控網站使用者流量中使用 API 的部分非常重要。

您可以在瀏覽器中使用多步驟使用者流量來監控此類流量或交易。但是,這在交易是由一系列 API 請求組成時還不夠,因為流量中的各部分都是來自於 API 回應的不同元件。另一方面,將使用者流量分解為多個部分的 API 監控產品,可以讓您查看測試失敗的步驟以具體了解問題所在。

 



在測試 API 時,您應該考慮網站或本機應用程式使用在關鍵資料或流程的 API,包括不是您自有的 API,以及客戶、使用者或開發人員使用於資料或流程的 API。

測試什麼

可用性
在最基本的層面上,API 測試和監控會檢查資源是否可用 (看會不會回應呼叫)。但是,隨著應用程式對其他應用程式和服務的依賴程度不斷提高,強烈建議您應該測試這些 API 所使用資源的可用性。接收這個生產鏈中任何可能發生的故障通知,可以讓您採取適當的行動,以確保網站或應用程式能保持運作,即使其他人不這麼做。

回應時間
API 回傳回應的速度有多快?透過測試回應時間,您可以確定與進入生產階段前相比,生產階段中的回應是否更差。此外,透過監控,您還可以確定回應時間是否會隨著時間而延長。

資料驗證
您的 API 或許可用並回應請求,但如果它回傳不正確的資料或未按照您預期的格式怎麼辦?這就是為什麼您應該定期測試,以確保系統能獲得執行工作所需的內容。詳細了解 API 請求標頭。

多步驟流程
此外,您應該檢查收到回應後執行的任何多步驟流程是否也如預期般運作。您可以快取呼叫中的資料節省對 API 的重複呼叫嗎?您的驗證機制是否如預期般運作?

測試與第三方和合作夥伴 API 的整合
正如我們之前所提,應用程式和服務通常會同時使用託管型 API 和第三方 API,而使用者經常無法區分兩者之間的差別。確保您的監控解決方案能使您了解第三方和合作夥伴的效能。藉此,您不僅可以追究合作夥伴的責任,還可以知道在出現任何問題時該與誰聯繫。

測試功能變更
當某項功能必須使用外部服務時,您需要確保應用程式與該服務可以相容。無論變更或是新版本,還是修復錯誤,您的基本程式碼可能無法在每一代服務中正常使用。

當然,生產中的測試很重要,但最好在部署之前先行找出錯誤。因此,如果您負責維護其他人使用的 API,請務必在生產階段前和生產階段中主動監控該 API。 


結論
無論您是想密切注意自己的 API,還是查看使用的外部服務的影響,測試 API 的可用性、功能、速度和效能都很重要。如果您知道有某個 API 過去不夠可靠,並且還沒有主動監控它,請與您的團隊開始討論並制定計畫,從今天就開始監控該 API。

 
作者
Stephen Watts
Stephen Watts 在 Splunk 負責不斷成長的行銷工作。Stephen 擁有美國奧本大學的哲學學位,並是加州大學丹佛分校的準資訊管理碩士。他為各種出版品撰稿,包括 CIO.com、Search Engine Journal、ITSM.Tools、IT Chronicles、DZone 和 CompTIA。