個人覺得介面測試既需要較強的程式碼功能,比如較好的python基礎。也需要紮實的業務知識。
什麼是API
在進行Api測試之前,讓我們先了解一下什麼是API?
API是應用程式程式設計介面(Application Programming Interface)的首字母縮寫。
它支援兩個獨立軟體系統之間的通訊和資料交換。實現API的軟體系統包含可以由其他軟體系統執行的功能/子程式。
什麼是API測試?
API測試與GUI測試完全不同,主要集中在軟體架構的業務邏輯層。這種測試不太關注應用程式的外觀和感覺。
在API測試中,您不必使用標準使用者輸入(鍵盤)和輸出,而是使用軟體將呼叫傳送到API,獲取輸出並記下系統的響應。
在API測試中測試需要應用程式與API進行互動。為了測試API,你需要
設定API測試環境
API的輸出型別
API的輸出可能是
例如:有一個API函式應該為兩個整數求和:
數字必須作為輸入引數給出。輸出應該是兩個整數的總和。這個輸出需要用預期的結果進行驗證。
呼叫比如
如果超過整數限制,則必須處理例外情況。
考慮下面的API函式:
它們返回任何值,如True(成功的情況下)或False(如果有錯誤)作為輸出。
更精確的測試用例可以呼叫任何指令碼中的函式,並在資料庫或應用程式GUI中中檢查更改。
API測試的測試用例:
API測試方法:
API測試和單元測試的區別單元測試API測試多為開發人員執行多為測試人員執行獨的功能端到端功能以訪問原始碼經常無法訪問原始碼涉及到UI測試只有API通常只有基本功能通常涉及所有功能範圍有限範圍更廣通常在check-in前執行builid完成後執行在API測試中測試什麼
除了通常的SDLC(Software Development Life Cycle 軟體生命週期)過程外,API測試應覆蓋至少以下測試方法
API測試的最佳實踐:
測試檢測到的錯誤型別
API測試工具
由於API和單元測試都針對原始碼,因此可以使用類似的工具進行測試。
API測試的挑戰
結論:
API由代表業務邏輯層的一組類/功能/程式組成。如果沒有正確測試API,則不僅會導致API應用程式出現問題,而且還會導致在呼叫應用程式中出現問題。
參考:https://china-testing.github.io/testing_api_10min.html
個人覺得介面測試既需要較強的程式碼功能,比如較好的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測試多為開發人員執行多為測試人員執行獨的功能端到端功能以訪問原始碼經常無法訪問原始碼涉及到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測試功能 - 無需指令碼經驗。RunscopePostmanCurlhttpiecfixCheckCTESKdotTESTEclipse SDK工具 - 自動API測試更多測試工具Top 20 API Testing Tools In 2018: REST & SOAPAPI測試的挑戰
API測試中的主要挑戰是引數組合,引數選擇和呼叫排序沒有GUI可用於測試難以給出輸入值的應用程式驗證和驗證不同系統中的輸出對於測試人員來說很難測試人員需要了解引數選擇和分類異常處理功能需要測試編碼知識對於測試人員是必要的結論:
API由代表業務邏輯層的一組類/功能/程式組成。如果沒有正確測試API,則不僅會導致API應用程式出現問題,而且還會導致在呼叫應用程式中出現問題。
參考:https://china-testing.github.io/testing_api_10min.html