軟體測驗實戰教程系列(一)你知道怎么做好介面測驗?|看了就會
談起軟體測驗,就不得不說一下介面測驗,凡是有功能的軟體都離不開介面,沒有介面的軟體只是一個模具或頁面,不具備任何功能,
什么是介面
業內常說的介面一般指兩種:
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性能測驗及調優中的死鎖處理方法,你還看不明白?
??阿里大牛純手碼數十萬字,自動化測驗成神之路電子版教程已問世,開放下載
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/327797.html
標籤:其他
