一、為什么要做接口測試
對于為什么要做接口測試,我們舉一個工作中的例子來看這個問題。
現(xiàn)在有這么一個需求:
一、需求背景
????????由于業(yè)務需求,需要對服務端下發(fā)給客戶端的數(shù)據(jù),針對客戶端的版本號進行控制。
二、具體需求
????????客戶后臺配置數(shù)據(jù)的列表增加“數(shù)據(jù)可見顯示的最低版本號”入口。配置之后,客戶端的版本號需要大于此條數(shù)據(jù)配置的版本號,才能展示。
如果是通過客戶端測試這個功能:
我們需要準備 一個大于限制版本的客戶端,一個等于限制版本的客戶端,一個小于限制版本的客戶端。
這里已經(jīng)需要準備三個客戶端版本。如果還要測試異常情況,比如版本號為空,這種客戶端準備起來則更加復雜。
如果是直接通過接口請求測試這個功能:
那我們只需要改變幾次參數(shù)就可以達到客戶端測試的效果。
而且所用的時間則快了好幾倍,并且測試異常的情況也容易許多。
所以對于“為什么要做接口測試”這個問題,有下面幾種原因:
1.部分客戶端的功能是在接口已經(jīng)完成的基礎上開發(fā),越底層發(fā)現(xiàn)bug,bug的修復成本是越低。
2.大部分的系統(tǒng)前后端架構(gòu)是分離,客戶端進測時間與服務端進測時間不一樣。
3.通過客戶端測試接口,不能滿足異常情況的測試需求。例如需要在請求參數(shù)中傳遞一個空值進行驗證,但客戶端可能已經(jīng)在前端做了對空值的限制,所以這種情況只能通過直接發(fā)送接口請求進行測試。
二、接口功能測試原理
接口測試原理:
接口測試的主要的目的,是為了測試服務器能夠返回符合預期的結(jié)果。所以接口測試的原理是模擬客戶端向服務器發(fā)送請求,服務器接收請求并處理后向客戶端返回響應內(nèi)容,客戶端接收響應的過程。
三、接口測試方法
接口測試流程:
????????1.根據(jù)接口文檔、需求文檔確認待測接口測試點
????????2.根據(jù)測點制定測試用例
????????3.根據(jù)接口文檔在postman中添加接口
????????4.開始測試線接口測試
????????5.測試線bug提交、跟蹤、關閉
????????6.測試線測試完畢之后,接口上線
????????7.線上驗證完畢,測試完成
在這些流程之中,測試點的提煉和測試用例的編寫是最核心的技能,也是難點。
(1)、測試點的提煉要從幾個方面判斷:
根據(jù)接口的業(yè)務邏輯:
????????1.接口功能是否符合需求文檔。(常用方法:邊界值、等價類)
????????2.返回的response的數(shù)據(jù)格式、參數(shù)名、參數(shù)類型是否與接口需求文檔定義一致。
????????3.接口數(shù)據(jù)的增刪改查
????????4.新舊版本兼容性測試
????????5.默認值測試(例如:某參數(shù)在后臺設置界面為非必填,但接口會一致下發(fā)該字段,這時候就會需要一個默認值,保證接口數(shù)據(jù)正常。)
接口邏輯:
????????接口是否有依賴業(yè)務。(例如:比如修改密碼的接口,必須要在用戶登錄的情況下才允許請求)
異常測試:
????????1.不傳必填參數(shù)
????????2.傳遞錯誤參數(shù)類型
????????3.參數(shù)值為空
????????4.參數(shù)值錯誤
(2)、接口測試用例
確定測試點之后,根據(jù)測試點設計測試用例。接口邏輯相對較少,用例設計相對簡單,具體會放在實例中介紹。