大家有資深的測試工程師麼?接口測試有沒有系統且實踐性比較強的方法呢?

穎er155664486


個人覺得接口測試既需要較強的代碼功能,比如較好的python基礎。也需要紮實的業務知識。


什麼是API

在進行Api測試之前,讓我們先了解一下什麼是API?

API是應用程序編程接口(Application Programming Interface)的首字母縮寫。

它支持兩個獨立軟件系統之間的通信和數據交換。實現API的軟件系統包含可以由其他軟件系統執行的功能/子程序。

什麼是API測試?

API測試與GUI測試完全不同,主要集中在軟件架構的業務邏輯層。這種測試不太關注應用程序的外觀和感覺。

在API測試中,您不必使用標準用戶輸入(鍵盤)和輸出,而是使用軟件將調用發送到API,獲取輸出並記下系統的響應。

在API測試中測試需要應用程序與API進行交互。為了測試API,你需要

  • 使用測試工具來驅動API
  • 編寫你自己的代碼來測試API

設置API測試環境

  • API測試與其他測試類型不同,因為GUI不可用,但您需要設置初始環境,以調用具有所需參數集的API,然後最終檢查測試結果。
  • 因此,為API測試設置測試環境似乎有點複雜。
  • 數據庫和服務器應按照應用程序要求進行配置。
  • 安裝完成後,應調用API函數來檢查該API是否正常工作。

API的輸出類型

API的輸出可能是

  • 任何類型的數據

例如:有一個API函數應該為兩個整數求和:

Long add(int a,int b)

數字必須作為輸入參數給出。輸出應該是兩個整數的總和。這個輸出需要用預期的結果進行驗證。

調用比如

add (1234, 5656)

如果超過整數限制,則必須處理例外情況。

  • 狀態(例如Pass或Fail)

考慮下面的API函數:

Lock() Unlock() Delete()

它們返回任何值,如True(成功的情況下)或False(如果有錯誤)作為輸出。

更精確的測試用例可以調用任何腳本中的函數,並在數據庫或應用程序GUI中中檢查更改。

  • 調用另一個API函數。

例如 - 第一個API函數可用於刪除表中的指定記錄,而此函數又調用另一個函數來刷新數據庫。

API測試的測試用例:

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

API測試方法:

  • 瞭解API程序的功能並明確定義程序的範圍
  • 用等效類,邊界值分析和錯誤猜測等測試技術,併為API編寫測試用例
  • API的輸入參數需要進行適當的規劃和定義
  • 執行測試用例並比較預期結果和實際結果。

API測試和單元測試的區別單元測試API測試多為開發人員執行多為測試人員執行獨的功能端到端功能以訪問源代碼經常無法訪問源代碼涉及到UI測試只有API通常只有基本功能通常涉及所有功能範圍有限範圍更廣通常在check-in前運行builid完成後運行在API測試中測試什麼

除了通常的SDLC(Software Development Life Cycle 軟件生命週期)過程外,API測試應覆蓋至少以下測試方法

  • 發現測試:測試組應手動執行API中記錄的一組調用,例如驗證是否可以產看,創建和刪除由API公開的特定資源
  • 可用性測試:驗證API是否可用和用戶友好。 API是否與另一個平臺完美集成
  • 安全測試:此測試包括需要哪種類型的身份驗證以及敏感數據是通過HTTP進行加密還是兩者兼而有之
  • 自動化測試:API測試應最終創建一組腳本或可用於定期執行API的工具
  • 文檔:測試團隊必須確保文檔足夠,並提供足夠的信息與API進行交互。文檔應該是最終可交付成果的一部分

API測試的最佳實踐:

  • 測試用例應按測試類別進行分組
  • 在每個測試的最上面,你應該包括被調用的API的聲明。
  • 參數選擇應該在測試用例本身中明確提及
  • 優先考慮API函數調用,以便測試人員能夠輕鬆測試
  • 每個測試用例應該儘可能獨立
  • 避免在開發過程中使用“測試鏈”
  • 處理一次調用函數時必須特別小心,如 - Delete,CloseWindow等等。
  • 調用隊列
  • 為確保完整的測試覆蓋率,請為API的所有可能輸入組合創建測試用例。

測試檢測到的錯誤類型

  • 無法正常處理錯誤條件。比如分母為0、文件不存在、忘記導入庫等。
  • 未使用的標誌
  • 缺少或重複的功能
  • 可靠性問題。連接並獲取API響應時遇到困難。
  • 安全問題
  • 多線程問題
  • 性能問題。 API響應時間非常高。
  • 不正確的錯誤/警告給調用者
  • 錯誤的有效參數值處理
  • 響應數據結構不正確(JSON或XML)

API測試工具

由於API和單元測試都針對源代碼,因此可以使用類似的工具進行測試。

  • SOAPUI - 這是一個易於使用的工具,具有廣泛的REST和SOAP API測試功能 - 無需腳本經驗。
  • Runscope
  • Postman
  • Curl
  • httpie
  • cfix
  • Check
  • CTESK
  • dotTEST
  • Eclipse SDK工具 - 自動API測試
  • 更多測試工具
  • Top 20 API Testing Tools In 2018: REST & SOAP

API測試的挑戰

  • API測試中的主要挑戰是參數組合,參數選擇和調用排序
  • 沒有GUI可用於測試難以給出輸入值的應用程序
  • 驗證和驗證不同系統中的輸出對於測試人員來說很難
  • 測試人員需要了解參數選擇和分類
  • 異常處理功能需要測試
  • 編碼知識對於測試人員是必要的

結論:

API由代表業務邏輯層的一組類/功能/程序組成。如果沒有正確測試API,則不僅會導致API應用程序出現問題,而且還會導致在調用應用程序中出現問題。


參考:https://china-testing.github.io/testing_api_10min.html


分享到:


相關文章: