[本文出自天外歸雲的博客園]
下面對一些服務端測試用例的設計思路做一個簡單總結
異常參數值組合測試
涉及:接口測試、單元測試
方法:
- 構造足夠多種“異常類型數據”以及足夠多種“異常參數組合”對接口或函數進行接口測試或單元測試
非法請求測試
涉及:接口測試
方法:
- 請求接口時,不附帶鑑權信息或帶非法的鑑權信息,檢查大量請求接口是否會對服務以及關聯中間件服務產生大量壓力
緩存中間件擊穿測試
涉及:CodeReview、接口測試
方法:
- 走查接口代碼邏輯,若涉及緩存,針對緩存邏輯進行測試用例設計,着重針對key值不存在的穿透邏輯以及key值過期的擊穿邏輯進行測試方案設計
主路徑邏輯覆蓋測試
涉及:CodeReview、用例評審、接口測試
方法:
- 走查接口代碼邏輯,確保測試用例覆蓋到所有的return分支
查詢類接口性能測試
涉及:CodeReview,數據構造,接口測試
方法:
- 接口否需要做了緩存保護,如果沒有緩存,大量的請求是否會將數據庫服務打崩
- 接口邏輯中是否做好合理分頁邏輯,數據庫錶針對常用查詢條件是否有合理的索引設計,數據量大的情況下,是否會有慢查詢產生
數據一致性測試
涉及:CodeReview,接口測試(組合驗證)
方法:
- 涉及增、刪、改數據庫操作,並涉及緩存,確保緩存也同步進行了增、刪、改
- 設計測試用例時可以進行組合接口測試,請求接口驗證數據庫值發生變化後,通過其他接口查詢涉及的緩存是否及時同步做了更新
故障注入測試
涉及:CodeReview,混沌實驗
方法:
- 通過ChaosBlade工具來實現對指定後端服務所在節點的故障注入,比如:CPU、內存、磁盤佔用、網絡丟包、網絡延遲等
- 通過ChaosBlade工具對Java服務做自定義異常注入和自定義腳本注入,對指定的類方法進行攔截,拋出自定義異常或替換成我們自己寫的java方法,實現邏輯替換,控制函數返回值