API 又稱介面測試,我把我知道的全都告訴你了,除非你真的不想學

程式設計師一凡發表於2020-09-27

什麼是API?
 API(全稱Application Programming Interface)是兩個單獨的軟體系統之間的通訊和資料交換。實現API的軟體系統包含可以由另一個軟體系統執行的功能/子例程。

什麼是API測試?
 API測試是一種用於驗證API(應用程式程式設計介面)的軟體測試型別。它與GUI測試非常不同,主要集中在軟體體系結構的業務邏輯層。在API測試中,您無需使用標準的使用者輸入(鍵盤)和輸出,而是使用軟體將呼叫傳送到API,獲取輸出並記下系統的響應。

API測試需要可以通過API進行互動的應用程式。為了測試API,您需要

使用測試工具呼叫API編寫自己的程式碼呼叫API

API測試的測試用例
API測試的測試用例基於

基於輸入條件的返回值:相對容易測試,因為可以定義輸入並可以驗證結果
不返回任何內容:沒有返回值時,將檢查系統上的API行為
觸發其他一些API /事件/中斷:如果API的輸出觸發了某些事件或中斷,則應跟蹤這些事件和中斷偵聽器
更新資料結構:更新資料結構將對系統產生某些結果或影響,應進行身份驗證
修改某些資源:如果API呼叫修改了某些資源,則應通過訪問相應資源來對其進行驗證

API測試方法
以下幾點可幫助使用者進行API測試:

瞭解API程式的功能並明確定義程式範圍
應用諸如等效類,邊界值分析和錯誤猜測之類的測試技術,併為API編寫測試用例
API的輸入引數需要適當計劃和定義
執行測試用例,並比較預期結果和實際結果。
API測試和單元測試之間的區別

如何進行API測試
API測試應至少涵蓋除常規SDLC流程以外的以下測試方法:
發現測試:測試組應手動執行API中記錄的一組呼叫,例如驗證是否可以列出,建立和刪除API公開的特定資源。
可用性測試:此測試可驗證API是否功能正常且使用者友好。API是否也可以與其他平臺很好地整合
安全測試:此測試包括需要哪種身份驗證以及是否通過HTTP加密敏感資料或同時通過這兩種方法對敏感資料進行加密
自動化測試:API測試應以建立一組指令碼或可用於定期執行API的工具為最終結果
文件:測試團隊必須確保文件足夠,並提供足夠的資訊來與API互動。文件應成為最終交付成果的一部分

API測試的最佳做法
測試用例應按測試類別分組
在每個測試的頂部,您應包括被呼叫的API的宣告。
測試用例中應明確提及引數選擇
確定API函式呼叫的優先順序,以便測試人員輕鬆進行測試
每個測試用例應儘可能獨立且獨立於依賴項
在開發中避免“測試鏈”
處理諸如-Delete,CloseWindow等一次性呼叫函式時必須格外小心。
呼叫排序應執行且計劃合理
為了確保完整的測試範圍,請為API的所有可能的輸入組合建立測試用例。

API測試檢測到的錯誤型別
無法優雅地處理錯誤情況
未使用的標誌
功能缺失或重複
可靠性問題。難以連線API並從API獲得響應。
安全問題
多執行緒問題
效能問題。API響應時間非常高。
錯誤的錯誤/警告呼叫者
對有效引數值的錯誤處理
響應資料的結構不正確(JSON或XML)

API測試工具
由於API和單元測試都是目標原始碼,因此可以使用工具/框架進行自動化。

jmeter

postwomen

Parasoft SOAtest

Runscope

Postman

API測試的挑戰
API測試的挑戰包括:

Web API測試中的主要挑戰是引數組合,引數選擇和呼叫排序
沒有可用於測試應用程式的 GUI ,這很難提供輸入值
對測試人員而言,在不同系統中驗證和驗證輸出幾乎沒有困難
測試人員必須知道引數的選擇和分類
異常處理功能需要測試
測試人員必須具備編碼知識

結論
 API由代表業務邏輯層的一組類/函式/過程組成。如果未正確測試API,則可能不僅會導致API應用程式出現問題,還會導致呼叫應用程式出現問題。它是軟體工程中必不可少的測試。

相關文章