什麼是API
API是Application Programming Interface的簡寫。
實現了兩個或多個獨立系統或模塊間的通信和數據交換能力。
什麼是API測試
API測試是不同於UI級自動化測試,其主要關注在系統架構的業務邏輯層,所以其主要關注不在於UI操作或用戶感觀上,更重調用邏輯關係。
與UI級自動化測試通過控制鍵盤輸入和鼠標等操作不同的是:API測試,我們是通過工具或代碼方式去調用特定的API,獲取輸出,並記錄系統的響應。
API測試需要與應用程序的API進行交互,爲了測試這些API,我們可以:
- 使用測試工具來進行測試
- 自己寫代碼的方式進行測試
API測試準備工作
首先你得獲取目標測試系統的API相關文檔,例如API對應的參數格式、期望返回結果等(一由開發提供文檔,二自己抓包分析)
就我們所處國內的實際情況,在大部分情況下,開發都沒有成型的文檔。所以作爲測試人員,你應該具備以下技能:
- 優先去推動開發生成一份合適的API說明文檔
- 掌握抓包分析工具,能夠自己去抓包分析形成API文檔
- 至少把http協議掌握,瞭解其報文結構
- 對用戶業務熟悉,能把API級業務邏輯和用戶業務結合起來
API主要測試什麼
API級測試至少應該覆蓋以下測試要點:
- 驗證API所暴露的資源是否恰當的列出、創建、修改、和刪除
- 驗證API是否功能可用以及用戶友好,是否便於與其他平臺集成
- 安全測試,驗證API是否包含了必要的認證以及敏感數據是否做了脫敏處理,是否支持加密或明碼的http訪問
- 自動化測試,將API高度業務場景化,實現自動化測試
- 文檔,形成足夠的文檔,確保API質量的可維護行
API測試要注意什麼
在API測試過程中要重點關注什麼呢?
- API測試用例要進行分類分組
- 每個API測試用例都應該參數化
- 在測試執行時,優先執行API測試
- 測試用例應該儘可能做到可獨立執行
- 爲了確保覆蓋率,應該爲API的所有可能輸入進行測試數據規劃
API測試能發現什麼bug
在API測試時,一般會發現哪類型的bug呢?
- 無法正確處理錯誤的深入條件
- 缺少或重複功能
- 可靠性問題
- 安全問題
- 多線程問題
- 性能問題
- 響應數據結構不規範問題
- 有效參數值不能正確處理
API測試有哪些工具
- SoapUI
- JMeter
- PostMan
- 自己寫代碼
其他工具不推薦了,筆者首推SoapUI或自己寫代碼
API測試你可能遭遇哪些大坑
- 無效的測試數據規劃,導致你的參數窮舉組合
- 因爲沒有界面,開發又不提供文檔的情況下,大部分人無從下手,會一臉懵逼
- 平時測試大都關注正常的正常的情況,但要注意異常處理API必須進行測試,你懂的
- 代碼你要會點代碼,會點HTTP協議,不然沒法溝通交流
總結
把日常接口測試工作進行了大概的總結,希望對入門接口測試的朋友們有點效果,沒效果那也沒辦法了,只能這樣了。