API 又稱介面測試,我把我知道的全都告訴你了,除非你真的不想學
什麼是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應用程式出現問題,還會導致呼叫應用程式出現問題。它是軟體工程中必不可少的測試。
相關文章
- “我不想讓我的女兒知道我被騙錢了”|說說身邊的網路安全故事
- [窮學測試] 學了軟體測試真的能改變命運嗎?我希望你能……
- 我們真的知道測試行業的內卷是什麼嗎?行業
- 有沒有人曾告訴你,你的SQL又報錯了?SQL
- 世上最真的情誼是,我把體驗告訴你 ——時代億信文件安全管理系統初體驗
- 我要告訴你:java介面中可以定義private私有方法Java
- 『JVM』我不想知道我是怎麼來滴,我就想知道我是怎麼沒滴JVM
- JDK 12又來了,我學不動了...JDK
- 告訴我你的廚房有什麼智慧物件物件
- 別告訴我你懂陣列(2)薦陣列
- 我真的從測試轉成了開發......
- 讓心理學家告訴你:我們究竟是為了什麼而玩遊戲?遊戲
- 我30歲了,轉行學程式設計可以嗎? 排除法告訴你答案程式設計
- 我30歲了,轉行學程式設計可以嗎?排除法告訴你答案程式設計
- JavaScript 深入學習~~我又回來了~~JavaScript
- IT行業那些你不想聽到的話,我都聽過了行業
- API 測試 | 瞭解 API 介面測試 | API 介面測試指南API
- 程式設計師最不想讓你知道的尷尬瞬間,看完我眼睛都綠了程式設計師
- 這個好玩又實用的jupyter外掛我真的愛了
- 週末我把HashMap原始碼又過了一遍HashMap原始碼
- 為什麼需要銀行卡文字識別API?讓我來告訴你!API
- API測試:瞭解API介面測試與API介面測試指南API
- JDBC API的那些事,你真的知道嗎?JDBCAPI
- 面試了300+的QA候選人,有些話,我想悄悄告訴你…面試
- Cook Cookie, 我把 SameSite 給你燉爛了Cookie
- java面試官:程式設計師,請你告訴我是誰把公司面試題洩露給你的?Java程式設計師面試題
- "instanceof 的原理是什麼"?大聲告訴面試官,我知道!面試
- 老司機告訴你,我們究竟想要怎樣的遊戲?遊戲
- 告訴你,我是一個與眾不同的密碼密碼
- ASM lsdg 告訴我們的資訊ASM
- 如何確定你的伴侶真的愛你?複雜數學公式告訴你公式
- Java,你告訴我 fail-fast 是什麼鬼?JavaAIAST
- 萬兆網路卡該如何選擇?我來告訴你!
- 程式猿,讓我來告訴你怎麼追女生!!!
- 關於自定義轉場動畫,我都告訴你。動畫
- 「趣圖」到處都是8塊9的Python,我不想學了!Python
- 我不知道你知不知道我知道的偽元素小技巧
- 你真的瞭解你的團隊嗎? ONA告訴你真相