聊聊介面測試用例設計規範

海布里Simple發表於2024-11-07

1、透過性驗證:

先按照介面文件傳入所有必填欄位並且欄位值在正確範圍內,預期返回正確結果

2、引數驗證(正向/逆向):

  1. 必填引數:針對每個必填引數,都設計一條引數為空的測試用例,介面錯誤資訊返回正確
  2. 非必填引數:設計一條用例所有非必填的引數都傳入值,非必填引數(型別,範圍)不正確,是否給出合理提示
  3. 引數值範圍:引數的值在/不在介面文件中規定引數值範圍內
  4. 長度邊界值:符合長度範圍內的,長度邊界值,超過長度邊界值的型別:符合引數型別的,不符合引數型別的(陣列,字串,正數,負數,整數,小數,小數點位數,中文,英文,特殊符號)
  5. 特殊值:空、null、"null"、""、" "、0、值的前後帶有空格、特殊符號等
  6. 介面文件中不存在的引數:介面傳入文件中不存在的引數不會異常
  7. 介面中傳入的引數被覆蓋:重複傳入相同的key,但value不同
  8. 傳入的引數格式不對:非json、少括號
  9. 引數個數:如果接受列表型別的引數,如果對列表大小沒有進行限定則傳入一個超大列表,如果對列表大小進行了規範則需要測試列表大小的邊界值;介面能否正確返回資料;

PS:後端程式碼中一般會有專門的程式碼來處理介面入參的校驗,可以透過檢視研發的程式碼來幫助提高介面引數校驗測試的效率,如java工程中的javax.validation.constraints。

介面入參size需要在[1 -3]內:

3、引數組合:

很多時候,介面中的引數有多個取值來滿足不同的業務邏輯,當這樣的引數>1時,就會出現引數組合的場景。例如引數A可傳[1,2,3],

引數B可傳["first","second","third"]

  1. 存在的組合:返回資訊正確
  2. 不存在的組合:錯誤資訊通俗易懂,錯誤碼正確
  3. 引數組合中引數的個數:若多個引數組合,是否允許任意多個引數的隨機組合(例如2個引數組合、3個引數組合、不傳)

4、介面前提條件驗證:
前提條件是否滿足:

  1. token(token失效/token格式不對/token型別不對、登入退出登入其他賬號)
  2. headers(例如Content-Type:application/json; charset=utf-8 、不填)

5、介面返回資訊和狀態碼等正確:

  1. 狀態碼正確
  2. 錯誤資訊沒有歧義(增:呼叫了一次新增介面之後再調一次新增介面,刪:呼叫了一次刪除介面之後再調一次刪除介面)
  3. 返回資料的結構正確
  4. 返回資料欄位值型別正確

6、資料操作正確性驗證:

如果介面是運算元據相關的,需要檢視資料的流轉和持久化是否正確完成,一般檢視MySQL和Redis是否有相應的CUD操作即可

7、併發能力:

也就是對介面做效能測試,驗證併發能力是否滿足預期

8、介面許可權/安全:

  1. 許可權控制:當藉口只有特定許可權的使用者才能操作時,驗證不同許可權的使用者的處理邏輯
  2. 冪等校驗:抓包工具攔截請求,修改敏感字斷值
  3. 事務/鎖校驗:同時操作同一條資料的修改操作,給出正確資訊
  4. 引數非明文:引數是否加密,加密規則是否易破解
  5. 密碼複雜度:密碼安全規則,密碼的複雜程度校驗

9、弱網驗證:

弱網下,介面是否可以正常響應

相關文章