軟件測試實戰教程系列(一)你知道怎么做好接口測試?|看了就會


談起軟件測試,就不得不說一下接口測試,凡是有功能的軟件都離不開接口,沒有接口的軟件只是一個模具或頁面,不具備任何功能。

什么是接口

業內常說的接口一般指兩種:

API:應用程序編程接口,程序間的接口

GUI:圖形用戶界面,人與程序的接口

軟件接口測試中的接口特指API接口

接口測試又稱API測試

接口實例:系統與系統間的接口調用,作用:實現了兩個或多個獨立系統或模塊間的通信和數據交換能力。

接口測試是什么

接口測試就是驗證這些信息能否正確傳遞,驗證這個方法是否正確,有沒有存在潛在的安全,性能問題。

所以總結一下接口測試的測試點就有三個:接口手動測試、接口安全測試、接口性能測試。

為什么要做接口測試

1)互聯網的快速發展,公司內部系統或與外部系統的關聯越來越多,一個業務流程關聯多個后端系統,它們的關聯都是基於接口來實現,接口測試可以將復雜的系統關聯進行簡化,只要做好每個接口的測試就能夠較好的保證系統質量。

2)單個系統的變更,是否會影響到關聯業務系統,比較難用常規的測試方面來覆蓋相關的應用系統(例如使用此接口的外部 系統有N個,不可能每個做功能兼容性測試),但可以通過對接口功能的覆蓋來驗證是否影響它人對接口的調用。

3)接口功能比較單一,能夠比較好的進行測試覆蓋,也相對容易實現自動化持續集成,可以減少人工回歸成本與時間,縮短測試周期。

4)接口相對於界面功能,會更底層一些,測試覆蓋會更容易(如業務在調用接口時做了判斷,當不滿足條件時鏈接就不顯示,此時從界面無法測試相關功能是否做好判斷,通過接口就比較容易)

接口測試范圍

1)業務功能(包括正常、異常場景是否實現)

2)業務規則(覆蓋度是否全面)

3)參數驗證(邊界、業務規則是否達到要求)

4)異常場景(重復提交、並發提交、事務中斷、多機環境、大數據量測試)

5)性能測試響應時間、吞吐量、並發數、資源要求)

6)安全測試(權限驗證、SQL注入等)

接口測試的重點

1、檢查接口返回的數據是否與預期結果一致。

2、檢查接口的容錯性,假如傳遞數據的類型錯誤時是否可以處理。

3、接口參數的邊界值。例如,傳遞的參數足夠大或為負數時,接口是否可以正常處理。

4、接口的性能,http請求接口大多與后端執行的SQL語句性能、算法等比較相關。

5、接口的安全性,外部調用的接口尤為重要。

做好接口測試的前提

1、系統化的接口文檔

傳統的接口文檔,一般采用word或wiki等系統來記錄,從單次使用上似乎比較簡單,因為大家會更習慣這樣的操作,但這種形式存在比較大的問題:

  • 接口文檔非標准化,無法直接與接口測試工具接口使用

  • 接口維護困難,接口有變化時比較難標識清楚,溝通成本很高

系統化接口文檔,例如rap(淘寶分源的一個系統),具備接口維護標准化、版本化管理、MOCK測試等功能;對標准化的接口內容做二次開發,可以直接導出Soapui等工具使用的格式,直接導入工具中使用,有以下好處:

  • 接口測試時不再需要手工輸入相關字段,節省時間成本

  • 版本化管理,能夠清晰的知道哪些接口有變化

2、標准化的接口規范

接口管理是做好接口測試很重要的前提,如果一個系統有哪些接口都不太清楚,測試就很難覆蓋到,接口管理建議采用以下方式:

A、按接口提供方為單位進行首次划分,按接口使用方進行二次划分,再按業務模塊進行細分,分類原則根據內容多少進行優化,不需要固定,如本身接口較少就沒有必要分得過細,較多時就需要多划分模塊

如:系統A,提供有 1、2、3、4、5、6、7、8、9 這9個接口,接口分別給B系統、C系統使用,其中1、2為公用接口,3、4、5為B專用,6、7、8、9為C系統專用,划分如下:

B、按接口鏈接URL做為唯一,不同的接口參數做為接口變量,接口有參數變更時在原來接口上進行維護,而不是新增加接口

C、為接口增加版本號,方便清楚哪些接口本次有變更,易於維護用例

接口測試常用工具

1、JMeter JMeter是Apache組織開發的基於Java的壓力測試工具,能夠將請求轉換為腳本來實現,並允許使用正則表達式創建斷言來對請求返回結果進行判斷,具備接口測試功能和性能的能力。

2、PostMan Postman是一款功能強大的網頁調試與發送網頁HTTP請求的Chrome插件,具備Fiddler\httpwatch之類的工具調試請求的功能,同時具備接口管理功能,官網提升腳本保存同步功能,支持接口導入導出

3、Loadrunner HP公司的性能測試工具,使用Python語言或JAVA語言編寫腳本,易學易用

接口測試用例怎么寫

三個步驟:

初始化測試數據

調用接口,傳入輸入數據

對輸出斷言

持續集成接口測試

對接口測試而言,持續集成自動化是核心內容,通過自動化的手段才能有效降低成本,提高接口測試的價值。如果使用LR、JMeter、SoapUI工具做自動化測試,工具本身支持命令行模式運行,可以接合Jenkins 等自動化平台,實現項目版本更新后的自動化回歸測試 關於持續自動化回歸測試的

建議:

1、接口腳本開發時要注意參數的取值的可用性,不因為時間或數據狀態的變化引起腳本不能正常運行,降低腳本維護成本.

2、接口回歸功能的覆蓋度控制,需要根據腳本的實際功能和重要性判斷自動化回歸覆蓋度,回歸內容越多腳本維護成本越高,一般應用接口不建議全功能覆蓋(畢竟接口有變化會做詳細測試,如果沒修改其它變更可能對其產生的影響一般不會影響其邏輯判斷)

3、接口腳本需要一定的自動化校驗能力,除請求http狀態的判斷外,還需要對核心內容的正常性做判斷(判斷內容可與數據庫內容匹配等方式,不建議用寫死的內容)。

4、持續性能測試,還需要做好相關的監控、性能指標的分析自動化,減少人工操作。

接口測試都要掌握哪些知識?

①了解系統及內部各個組件之間的業務邏輯交互;

②了解接口的I/O(input/output:輸入輸出);

③了解協議的基本內容,包括:通信原理、三次握手、常用的協議類型、報文構成、數據傳輸方式、常見的狀態碼、URL構成等;

④常用的接口測試工具,比如:jmeter、loadrunner、postman、soapUI等;

⑤數據庫基礎操作命令(檢查數據入庫、提取測試數據等);

⑥常見的字符類型,比如:char、varchar、text、int、float、datatime、string等;

如何學這些技能?

①系統間業務交互邏輯:通過需求文檔、流程圖、思維導圖、溝通等很多渠道和方式;

②協議:推薦《圖解http》這本書,內容生動,相對算是入門級的書籍,其他的還有《圖解tcp、IP》等;

③接口測試工具:百度這些工具,然后你會發現,好多的教學博客、相關問題解決方案、以及一些基於工具的書籍,當然,選擇合適的書很重要;

④數據庫操作命令:學習網站(W3C菜鳥教程)、教學博客,以及一些數據庫相關書籍,入門級推薦:《mysql必知必會》、《oracle PL/SQL必知必會》等

⑤跟着身邊大佬走,多問多學,如果身邊沒有大佬也可以加入我們,全國的小伙伴天南地北,可以一起聊天學習,更加了解這個行業情況,趨勢與走向。

參考資料

接口測試的內容就講到這里啦!如有需要了解軟件測試相關的其他內容,可到【主頁】進行查看學習~

🌻推薦閱讀:

💜軟件測試人員必讀的經典書籍(附電子書),前阿里大佬給我推薦...

💜一文了解MySQL性能測試及調優中的死鎖處理方法,你還看不明白?

💜月薪3萬的大廠測試工程師裸辭3個月,送外賣謀生背后的真實感悟


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM