在介面測試過程中,用例設計是關鍵中的關鍵,需要重點關注的一些維度
介面就是內部模組對模組,外部系統對其他服務提供的一種可呼叫或者連線的能力的標準,所謂的介面是模組與模組之間的一種連線
上圖為乙個典型的介面,乙個介面通常是有輸入輸出的,輸入就是我們常見的入參,輸出有時有,有時沒有。呼叫相關介面,介面會執行相關處理邏輯
介面測試的用例設計,主要從輸入和介面處理兩方面考慮:
針對輸入,可按照引數型別進行設計
針對介面處理,可按照邏輯進行用例設計
針對輸出,可根據結果進行分析設計
介面測試經常遇到的bug和問題,如下:
前面說明什麼是介面以及什麼是介面測試,接下來詳細看看如何才能更好的進行介面用例設計
對於介面來說,輸入就是入參。常見引數型別有:
數值型(int、long、float、double等)
字串型別
陣列或鍊錶
結構體數值型引數主要考慮的設計思路
1.1.1 等價類
1.1.2 邊界值
1.1.3 特殊值
1.1.4 遍曆法
栗子整型:最大最小值限制、0和負數的限制
浮點型:最大最小值限制、0和負數的限制、小數點後位數的限制
常見問題字串型的引數,主要考慮字串的長度和內容
1.2.1 字串長度
1.2.2 字串內容
栗子空串、空白符號、長度限制校驗、中文、全形半形、特殊字元
常見問題引數型別為陣列或鍊錶時,主要考慮成員個數和成員內容
1.3.1 成員個數
1.3.2 成員內容
常見問題結構體(struct)是一些元素的結合,元素實際也是數值型,字串型,陣列或鍊錶
列舉型別
需要針對列舉型別進行具體的業務資料邏輯校驗
物件型別介面核心作用在於處理業務邏輯,針對功能邏輯的用例設計分析
約束條件用例設計的意義在於:常見問題物件導向首先得有物件,業務處理邏輯也是針對物件的,例如使用者線上授課,課件就是操作物件,而課件的元素、屬性也是物件使用者進行操作時,在該操作前端進行了約束條件的限制,故使用者無法直接觸發請求該介面,但如果前端有bug或者通過介面請求直接呼叫,那麼針對這些條件限制十分重要
常見問題被測邏輯可以抽象成狀態機,各個狀態之間根據功能邏輯從乙個狀態切換到另乙個狀態
如果打亂對應的次序,從乙個狀態切換到另乙個不在它下一狀態集中的狀態,那麼可能出現邏輯問題
栗子
從某狀態改變到新的狀態,依賴特定的轉換介面處理
對於某些轉換介面,其輸入狀態是確定的(比如fun23,這個函式只能把狀態2轉換為狀態3,而不能把狀態1轉換為狀態3)
測試點可以如下設計:
狀態為狀態2,呼叫介面fun23(),狀態切換到狀態23
狀態為1,3等,呼叫介面fun23(),狀態不能切換
常見問題在一些複雜的活動中,乙個活動是由一系列動作按照指定順序進行的,這些動作形成乙個動作流,只有按照這個順序依次執行,才能得到預期結果
在在介面測試時,需要考慮如果不按照時序執行,是否會出現問題
常見問題在處理業務邏輯時,有時候因為資料精度問題導致出現計算
資料精度的校驗考慮的資料
介面屬於模組之間的呼叫,有時候前端直接展示介面返回的資訊
異常校驗涉及服務內部異常、依賴的外部服務異常、依賴的中介軟體異常等等
依賴的下游服務呼叫異常思路
需要針對服務及介面對應的依賴服務和中介軟體(nginx、redis、db、mq、kafka等等)進行梳理,不同情況下的模擬介面業務邏輯中關於資料的處理邏輯重中之重,接下來針對資料校驗的幾個方面來說明一些校驗的維度訪問超時和丟包可以使用linux的tc命令來設定
服務掛掉可以通過改ip或埠模擬
依賴第三方介面的異常返回碼可以用mock模擬
在設計功能用例時,僅限於介面文件或了解的資訊進行用例設計,有時候需要增加一些輔助手段更好的深入測試
檢查思路:過濾條件是否足夠及該過濾的資料有沒有被過濾,比如刪除狀態的資料要不要過濾、禁用狀態的資料要不要過濾在介面測試時,不僅僅是關注功能是否能正常實現,還需要關注日誌資訊是否正確
有沒有,需不需要
資訊夠不夠,有沒有多餘
日誌級別對不對
需不需要開關,開關開啟機制
是否非同步收集,效能是否有影響
日誌中有沒有包含敏感資訊、使用者資訊
呼叫鏈路(下游)的介面超時時間合理性
在介面測試時,效能方面主要關注併發是否導致一些功能邏輯的問題及單個介面的響應時間
如果依賴sdk,需要重點關注sdk新舊版本的相容性
介面用例設計
1 功能測試 等價類劃分法 邊界值分析法 錯誤推斷法 因果圖法 判定表正交實驗 功能圖法 場景法 2 異常測試 資料異常 null 資料型別異常,比如要求整型資料,但是卻輸入特殊字元,小數,負數等 環境異常 負載均衡 冷熱備份 3 效能測試 負載測試 壓力測試 併發測試 穩定性測試 自動化介面測試範...
介面用例設計
1 功能測試 等價類劃分法 邊界值分析法 錯誤推斷法 因果圖法 判定表正交實驗 功能圖法 場景法 2 異常測試 資料異常 null 資料型別異常,比如要求整型資料,但是卻輸入特殊字元,小數,負數等 環境異常 負載均衡 冷熱備份 3 效能測試 負載測試 壓力測試 併發測試 穩定性測試 自動化介面測試範...
用例設計方法 用例格式
一 用例格式 用例id 不要重複 測試模組 具體測試物件屬於哪個模組 用例屬性 功能測試,介面測試,相容性測試,介面測試,效能測試 優先順序 重要程度 描述這條用例測試的功能影響大不大,很重要 極高 高 中 低或 1 4 預置條件 存放使用的資源,或者需要提前準備的資訊 操作步驟 嚴格按照使用者的操...