接口測試須要驗證數據庫麼?

問題:數據庫

 

有的接口會返回不少數據,有的接口可能就返回一個狀態碼及success之類的消息,這些須要驗證數據庫麼?如今在寫一個測試框架,配置接口參數和預期返回值,生成xml文件管理用例,用一個比較方法對預期和返回做比較,不須要根據每一個接口寫腳本,如今的疑惑只之比較返回值,並不清楚接口是否真的成功了,好比刪除之類的接口,返回說成功了,但數據是否真的刪除了?若是要驗證數據庫,感受得爲每一個用例寫腳本去驗證了,這就和初衷不符(只寫個比較函數,比較返回的全部值,不須要爲每一個接口單獨驗證)微信

 

 

回答:框架

 

很多同窗在作自動化是都會問要不要驗證數據庫?個人答案是不要!函數

 

根據分層自動化測試的概念。測試

 

UI層自動化模擬的是用戶操做,假設我是一個普通的用戶,在你家的系統上購買了一件商品,我怎麼知道有沒有購買成功?難道要去查你家系統的「已購買表」?沒權限,就算有權限我也不會!那我怎麼驗證?很簡單啊!系統不是有「已購買」 商品列表嘛!點開「已購買」菜單看就能夠了!(若是沒有這功能,那說明你的系統設計有問題。用戶體驗很差,差評!!)spa

 

接口自動化模擬的是開發的代碼操做,A開發寫的接口給B開發去調用,A系統的接口給B系統去調用,假設我是一個開發,我調用了微信的接口去作獲取用戶頭像,有個用戶獲取不到,來!微信團隊,你讓我查查大家的數據庫唄!微信確定不答應。(數據庫不是你想查,想查就給你查!)設計

 

那接口返回了「success」,但沒有把數據添加/刪除成功怎麼辦?從我兩年接口自動化的經驗來講,這中狀況基本很是少見,由於開發在寫代碼的時候,返回「success」的前提條件確定是基於操做成功的。(開發寫代碼的時候確定會自已運行一下啊!怎麼會運行都不運行,哪兒來的自信!)xml

 

大家的開發就是粗心怎麼辦?我是這麼作的,開發提交了新的接口,我會邊讀接口代碼邊設計接口用例(若是接口邏輯看不懂接口數據可能就構造不出來,接口用例天然也不會寫。),代碼有問題就直接告訴開發改了,在這個過程當中,我是會查數據庫的。一旦接口用例寫好以後,後面再回歸去跑的時候就無論了,固然,每條接口用例裏面確定不會加查詢數據庫的動做。接口

 

在特殊狀況下,我調用了一個刪除數據的接口,有沒有真的刪除一條數據,我能夠調用查詢數據的接口啊!查不出來剛纔刪除的數據,不就證實剛纔的刪除接口操做是ok的了。開發

 

大多數測試問這個問題就是把本身當測試了,在作手工測試的時候就是這麼查數據庫的呀!典型的站在測試的思惟上想問題。我作UI自動化的時候,我就是普通的用戶;我作接口測試的時候我就是開發。只不過,我會比普通用戶和開發更細緻更全面的「使用」系統所提供的功能而已。但「使用姿式」和他們是同樣的!

相關文章
相關標籤/搜索