API(應用程序接口)正逐漸成為很多軟件開發的中心,不同的系統、應用通過API連接、傳輸數據、互相交互。越多越多的系統從MVC架構轉向微服務架構,各個微服務之間通過Rest API進行交互。對于企業來說,相比產品開發完成后,進行UI測試,API測試更容易發現問題,更可能在早期階段發現問題。并且API測試成本更低,更容易實現自動化測試,并且有更多的成熟的自動化測試工具可以使用,比如RestBird、Postman、SmartBear等,大大提高效率。通過本文你可以了解到:
- 什么是API接口測試?API測試和UI測試有什么區別?
- 為什么現在越來越重視API接口測試?
- API測試有哪些類型?
- Restbird、Postman等工具加速API自動化測試。
1.什么是API接口測試?API測試和UI測試有什么區別?
API應用一般分為三層:數據層、服務(API)層、展現(UI)層。API層,即業務邏輯層,一般包括用戶業務邏輯、用戶和服務、數據、應用功能交互規則。API直接觸及數據層和展現層,API測試是開發測試團隊可持續、自動化測試最佳切入點。有助于大幅提高軟件交付質量、系統穩定性。目前,傳統測試更聚焦UI層測試,但接口測試的優勢和價值目前已經被普遍認可。
- API測試:通常向一個和多個API發送請求,并驗證響應,以檢查性能、安全、功能正確性、返回狀態等。
- UI測試:通常聚焦驗證Web/App的界面展示、按鈕/控件的操作、通過控件操作驗證功能等。
- 與UI測試相比,API測試更多聚焦業務邏輯、數據響應、安全、性能瓶頸等。
2.為什么現在越來越重視API接口測試?
- 測試介入階段更早,更容易發現問題 :通過API測試,只要核心邏輯設計完畢,就可以通過API測試驗證響應的正確性和數據。無需等待各個團隊完成自己的工作和整個軟件開發完成。
- 更容易測試管理:UI界面會因為用戶的訪問方式和終端的變化而變化(比如瀏覽器、訪問設備、屏幕尺寸等),因此測試工程師需要不斷重新測試或者重寫自動化測試代碼。甚至有的圖形錯誤造成無法測試核心功能。API測試更容易控制,甚至幾秒就可以重構一個測試。
- 更容易定位問題:API測試更容易定位Bug。這在開發、集成,尤其是不同團隊之間配合非常重要,可以快速定位問題,解決問題。
- 更節省測試時間:300個UI測試大概需要30個小時,300個API接口測試僅僅需要3分鐘。這意味花費更少的時間發現bug,可以立即修復bug。
一個案例
1)下面是UI級別測試示例:一個相當簡單和普通的測試。訪問一個網站、填寫表單、提交表單,認證后進入下一個頁面。
在UI測試層面,即使最簡單的測試也會面臨很多的挑戰。首先,受到瀏覽器和網絡連接的限制,每次運行測試的時候,都需要等瀏覽器加載網站。其次,自動化測試,頁面中的任何元素都可能改變,造成測試失敗。有時候界面錯誤造成無法測試核心服務邏輯。這些但嚴重耗費測試工程師時間和拖慢項目進度。如果你想把所有可能性全部測試一遍,可能會出現上萬個排列組合。
2)通過API接口測試,整個測試只有一個步驟。
3.API測試有哪些類型?
1)單元測試:測試領域有很多人喜歡定義概念,給大家帶來很多困擾。API單元測試最簡單的定義,通過一個簡單的請求,獲得一個或者多個響應。通常這種測試可以通過一個命令行或者使用Restbird API工具快速完成。
2)集成測試:API接口是內部系統、三方服務集成的核心,API接口測試最頻繁、最重要的往往是集成測試。
3)端到端測試:端到端測試可以幫助我們驗證幾個不同API連接之間的數據和信息流。
4)性能測試:API請求響應時間、事務響應時間、并發用戶數、吞吐量、TPS、資源利用率等。API性能是系統整體性能等基石。
4.Restbird、Postman等工具加速API自動化測試
相比UI測試,API更容易實現自動化測試,從而大大提高測試效率,提高研發交付質量。你可以自己撰寫測試腳本,也可以使用第三方API測試工具,如Restbird、Postman、Runsope、Curl、Cfix、Check等,這些三方工具可以很好的幫助工程師實現自動化測試。比如Restbird不僅支持http的get、put、post、delete、head、patch、options等請求外;還支持Python、JAVAScript、Golang編程;svn、git版本管理、CI/CD集成。合理運用三方工具,能快速實現API測試自動化,并極大提高API測試效率。






