寫在前面:在日常開發程序中,有人做前端開發,有人負責后端開發,介面的主要作用就是連接前后臺,但是,由于前端和后端開發的速度可能不一樣,尤其是后端開發好了,但前端還未開發,這種時候我們需要做介面測驗嗎?
在日常作業中,我們主要測驗的都是功能板塊,如果你想真正了解介面測驗,那么這篇文章或許能給你一定幫助,
1、為什么我們要做介面測驗?
首先,我們先來看看測驗金字塔(介面測驗是在中間部分,底層是單元測驗,最頂端是界面測驗),

從三者的面積大小來看,單元測驗和介面測驗,才是重點,而界面測驗真的是太少,這個面積,你可以理解為代碼覆寫,也可以理解為測驗的作業量,
在國內公司越來越重視介面測驗了,之前的幾年,很多測驗資源都放在了界面的測驗,看趨勢接下來應該會逐步放在介面測驗功能、性能、自動化和穩定性測驗上面,
2、什么是介面測驗?
這個有太多文章,就不細說了,百度或者論壇里找就好了,
3、介面的分類
在開始做介面測驗之前,有必要了解一下介面的分類,這里的分類,主要是HTTP請求方法分類,下面是我們最常見的GET/POST/PUT/DELETE四種方法,作業中介面用到最多是GET和POST方法,

4、設計介面測驗用例
接下來,我們就一起來聊聊進行介面測驗的準備作業,有些同學很好奇,介面測驗要流程干嘛?不就是拿著介面檔案利用介面測驗工具測驗,
如果只是三五個介面,你可以這么做一個臨時的介面測驗,但是如果是上百個介面,或者新專案第一次做介面測驗,那么還是很有必要遵守測驗的流程的,
1)介面測驗的流程
介面測驗和功能測驗一樣,流程也大致遵守V模型,請看下圖,

一般來說,介面測驗左邊的每個階段,每個公司可能都側重點不同,例如有些公司就沒有需求討論和需求評審這個階段,
但是不管如何,用例設計這個是少不了的,而且是重點,是要花時間的階段,只有覆寫全面的介面測驗用例,才能有比較好的測驗介面覆寫率,才會找出更多的介面的Bug,
2)為什么要寫介面測驗用例
功能測驗用例,大家都寫過,介面測驗用例,很多人沒有寫過,在寫之前,我們來討論下,為什么要寫介面用例,
①理清思路,避免漏測
②提高測驗效率
③跟進測驗進度
④告訴領導做過
⑤跟進重復性作業
上面五點,結合自己測驗實際經驗,應該來說是很好理解的,有用例就有思路,避免漏掉測驗點,跟著測驗用例走,一方面可以避免隨機測驗那種沒有目的性的測驗,提高測驗效率;另一方面,這對領導檢查你的作業、同事詢問你的進度時有很多便利,也能夠提高對接效率,
3)介面用例設計
我們在設計介面用例時,主要可以從這四個方面來考慮:功能,邏輯業務,例外,安全,
①功能:
功能是否正常;功能是否按照介面檔案實作;
②邏輯業務:
是否依賴業務;
③例外:
引數例外和資料例外;
引數例外:關鍵字引數,引數為空,多,少引數,錯誤引數;
資料例外:關鍵字資料,資料為空,長度不一致,錯誤資料;
④安全測驗用例設計:
cookie:有cookie才能獲取資料,如果不帶cookie還有資訊回傳,說明有問題
header:正常介面帶header資訊,洗掉header看是否能夠回傳資料,
唯一識別碼:app手機識別碼,一般是唯一的,
注:安全測驗主要從上面三點檢查,第三個是唯一識別碼,主要是指app上手機的識別碼,一般很少用到,除非很嚴格的介面測驗,例如銀行app登錄,需要指紋,而指紋來源手機,一般有一個手機識別碼判斷程序,
5、介面測驗的工具
目前,市場上有很多支持介面測驗的工具,利用工具進行介面測驗,能夠提供測驗效率,例如,加入讓你一天完成100個介面測驗任務,你覺得你加班能否完成,如果有工具,但是不是所有工具都能夠支持你完成這個任務,下面我們就來挑選幾個工具,簡單介紹一下,
1)fiddler
首先,這是一個HTTP協議除錯代理工具,說白了就是一個抓http包的工具,web測驗和手機測驗都能用到這個工具,既然是http協議,這個工具也能支持介面測驗,稍后文章,我們會專門介紹fiddler這個工具,
2)postman
這是一款google工程師開發的一個插件,可以安裝到chrome瀏覽器上,支持不同介面測驗請求,能夠管理測驗套件和自動化運行,弱點在于,自動化斷言功能不強大,不能和jenkins和代碼管理庫進行持續集成測驗,但是,絕對是一個很好的半手工,半自動化測驗工具,
3)wireshak
這個是一款計算機上抓包工具,支持抓各種包,TCP,UDP,HTTP都支持,如果做底層網路資料測驗,一般都需要用到它,作為介面測驗,這個軟體有點不友好,因為重繪資料太快,不好定位每個操作對應的介面,所以,我們不會進行過多介紹這個工具,
4)soupUI
這個是一個開源免費、企業版收費的軟體,在國外的介面測驗,使用非常多,這個工具能夠支持介面自動化測驗和介面性能測驗,也能支持和jenkins做持續集成測驗,了解一下就可以,自己可以下載一個社區免費版,做一個demo試試,
5)java代碼做介面測驗
代碼是萬能,筆記工具也是代碼開發出來的,為什么要用代碼做介面自動化測驗呢,因為,有些工具功能是有限制,很多公司,需要一些特定的功能,工具不支持,只好用代碼進行開發,
一般用Java做自動化測驗,主要是利用httpclient.jar這個包,然后利用junit或者testng這樣的單元測驗工具,進行測驗用例的開發,然后在jenkins上創建一個job,進行持續集成測驗,
6)Python代碼做介面測驗
和Java一樣,Python中利用一個很好,功能強大的第三方庫requests,能夠方便都創建介面自動化用例,python下單元測驗框架,一般采用unittest,生成測驗報告,一般選擇HTMLTestRunner.py,同樣,可以和jenkins做持續集成測驗,
7)LoadRunner
不要以為LR只能做性能測驗,loadrunner同樣可以做介面自動化和介面壓力測驗,只是我們很多人,不會利用LR的函式,進行開發介面測驗用例,
8)JMeter
JMeter同loadrunner一樣,都是以性能測驗出名,一般用JMeter也是做介面性能測驗,例如java+Jmeter+ant+jenkins做介面性能監聽測驗,JMeter如何做介面測驗,大家可以網上查下,
寫在最后:上面說了這么多工具,基本覆寫了介面功能測驗,介面自動化測驗,介面性能測驗,這里提一下,國內有個綜合性的Saas測驗工具,不用部署,界面也比較簡潔,叫Eolinker,使用地址我貼在下面,自己試試就知道了,
使用地址:www.eolinker.com
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/242232.html
標籤:其他
上一篇:軟體測驗必備7大技能
