一揍瑟、為什么要做接口測試
在日常開發(fā)過程中,有人做前端開發(fā)乍炉,有人負責(zé)后端開發(fā)绢片。接口就是連接前后臺,由于前端開發(fā)和后端開發(fā)的速度可能不一樣岛琼,例如后端開發(fā)好了底循,但是前端沒有開發(fā)。那么我們是不是就不需要測試呢槐瑞?一般我們大部分人都是做功能測試熙涤,很多是界面的功能測試。如果你理解了接口測試困檩,那么你就可以針對接口進行測試祠挫。
二、什么是接口悼沿、什么是接口測試
接口:主要是子模塊或者子系統(tǒng)間交互并相互作用的部分茸歧。
這里說的接口是廣義的,客戶端與后臺服務(wù)間的協(xié)議显沈;插件間通信的接口软瞎;模塊間的接口;再小到一個類提供的方法拉讯;都可以理解為接口涤浇。
接口測試:是指針對模塊或系統(tǒng)間接口進行的測試。
三魔慷、接口測試流程
需求討論只锭,需求評審,場景設(shè)計院尔,編寫用列蜻展,準備數(shù)據(jù)喉誊,執(zhí)行測試
四、接口測試用例設(shè)計
1接口測試的用例設(shè)計纵顾,主要從輸入和接口處理兩方面考慮:
1)針對輸入伍茄,可按照參數(shù)類型進行設(shè)計;
2)針對接口處理施逾,可按照邏輯進行用例設(shè)計敷矫;
3)針對輸出,可根據(jù)結(jié)果進行分析設(shè)計汉额。
2針對輸入設(shè)計
對于接口來說曹仗,輸入就是入?yún)ⅰ3R妳?shù)類型有:
(1)數(shù)值型(int,long,float,double等)
(2)字符串類型
(3)數(shù)組或鏈表
(4)結(jié)構(gòu)體
五.怎么進行接口測試
通過工具模擬客戶端向服務(wù)端發(fā)送請求并接受服務(wù)器返回的數(shù)據(jù)來對接口的功能蠕搜,邏輯業(yè)務(wù)怎茫,異常,安全進行測試
功能測試:測試這個接口的功能是否實現(xiàn)妓灌,并且測試這個接口是否按照接口文檔來進行開發(fā)的(比如說接口文檔規(guī)定了一些關(guān)鍵字遭居,而開大的時候把關(guān)鍵字改成了其他的關(guān)鍵字,因為在整個項目周期旬渠,并不只有一個開發(fā)而是有多個,所以可能因為在開發(fā)過程中因為關(guān)鍵字不一樣導(dǎo)致某些開發(fā)的功能異常端壳,還有自動化腳本也會發(fā)生異常)
邏輯業(yè)務(wù)告丢,主要指的是一些邏輯業(yè)務(wù)依賴關(guān)系(比如支付寶提交訂單的時候要保證你是在登錄的情況下,如果你沒有登錄而提交成功了损谦,這就是異常岖免,可以修改請求的cookie來測試)
異常測試:參數(shù)異常:關(guān)鍵字參數(shù)(應(yīng)用其他的關(guān)鍵字替換進行測試)、參數(shù)為空照捡、參數(shù)多少(通過添加參數(shù)增添個數(shù))颅湘,參數(shù)錯誤。數(shù)據(jù)異常:關(guān)鍵字數(shù)據(jù)(填入的數(shù)據(jù)用其他的數(shù)據(jù)語言的數(shù)據(jù)替用)栗精、數(shù)據(jù)長度闯参、數(shù)據(jù)為空、數(shù)據(jù)錯誤悲立。
由于我們項目前后端調(diào)用主要是基于http協(xié)議的接口鹿寨,所以測試接口時主要是通過工具或代碼模擬http請求的發(fā)送與接收。工具有很多如:apipost薪夕、jmeter脚草、java+httpclient、robotframework+httplibrary等原献。 –也可以用 接口自動化來實現(xiàn)馏慨,就是用代碼實現(xiàn)埂淮,框架和UI自動化差不多,發(fā)送請求用斷言來判斷写隶。
六倔撞、接口測試需要用到的工具
接口測試常用的工具,fiddler抓取請求樟澜,apipost模擬客戶端通過對fiddler抓取的請求修改并發(fā)送到服務(wù)端并接收服務(wù)器返回的數(shù)據(jù)及異常來進行驗證接口误窖。工具不是固定的,需要根據(jù)項目來進行選擇秩贰。
七霹俺、接口測試發(fā)現(xiàn)的典型問題
接口測試經(jīng)常遇到的bug和問題,如下:
(1)傳入?yún)?shù)處理不當毒费,導(dǎo)致程序crash丙唧;
(2)類型溢出,導(dǎo)致數(shù)據(jù)讀出和寫入不一致觅玻;
(3)因?qū)ο髾?quán)限未進行校驗想际,可以訪問其他用戶敏感信息;
(4)狀態(tài)處理不當溪厘,導(dǎo)致邏輯出現(xiàn)錯亂胡本;
(5)邏輯校驗不完善,可利用漏洞獲取非正當利益等畸悬。