測試中,介面測試的必要性與介面測試的基礎用例設計

長安白貓發表於2020-09-27

1、 什麼是介面,為什麼要做介面測試(介面測試的必要性)
介面:
現在介面一般分為兩種,一種程式內介面,另一種是系統對外的介面,程式內介面就是我們開發一個系統或者程式,只供我們程式內使用,而對外介面就是我們需要提供給外部用的介面,比如說我們要的第三方登入(微信登陸,或者微博登陸)或者支付,這種就是我們調取的微信或者微博給我們提供的介面。
為什麼要做介面測試呢,因為介面主要是給我們提供資料交換的,而現在呢大多數的程式都是前後端分離的形式,前端出頁面,後端出介面,前端調取後端提供的介面,通過介面來做前後端的資料交換,而我們現在只是依靠前端的限制並不能滿足我們現在的安全要求,所以後端呢也同樣需要作出相應的限制。
舉個例子:比如測試使用者註冊功能,規定使用者名稱為6~18個字元,包含字母(區分大小寫)、數字、下劃線。首先功能測試時肯定會對使用者名稱規則進行測試,比如輸入20個字元、輸入特殊字元等,但這些可能只是在前端做了校驗,後端可能沒做校驗,如果有人通過抓包得到介面,繞過前端校驗直接傳送到後端怎麼辦呢?試想一下,如果使用者名稱和密碼未在後端做校驗,而有人又繞過前端校驗的話,那使用者名稱和密碼不就可以隨便輸了嗎?如果是登入可能會通過SQL隱碼攻擊等手段來隨意登入,甚至可以獲取管理員許可權。這樣我們的資料系統的一切就不暴露在人家眼前,毫無隱私可言。所以這時介面測試的重要性就體現出來了。(當然這個只是我的看法)
做介面測試的優點:
①、可以發現很多在頁面上操作發現不了的bug
②、檢查系統的異常處理能力
③、檢查系統的安全性、穩定性
④、前端隨便變,介面測好了,後端不用變

2、介面測試的基礎用例設計
①、通過性驗證:首先要保證這個介面功能是正常可用的,也就是正常的通過性測試,按照介面文件上的引數,正常傳入,是否可以返回正確的結果。
②、引數組合:現在有一個操作商品的介面,有個欄位type,傳1的時候代表修改商品。而商品id、商品名稱、價格有一個是必傳的,type傳2的時候是刪除商品。而商品id,是必傳的,這樣的,就要測引數組合了,type傳1的時候,只傳商品名稱能不能修改成功,id、名稱、價格都傳的時候能不能修改成功。
③、介面安全:
1、繞過驗證,比如說購買了一個商品,它的價格是300元,那我在提交訂單時候,我把這個商品的價格改成3元,後端有沒有做驗證,或者我把錢改成負數,是不是我的餘額還要增加?
2、繞過身份授權,比如說修改商品資訊介面,那必須得是賣家才能修改,那我傳一個普通使用者,能不能修改成功,我傳一個其他的賣家能不能修改成功
3、引數是否加密,比如說我登陸的介面,使用者名稱和密碼是不是加密,如果不加密的話,別人攔截到你的請求,就能獲取到你的資訊了,加密規則是否容易破解。
④、異常驗證:
所謂異常驗證,也就是我不按照你介面文件上的要求輸入引數,來驗證介面對異常情況的校驗。比如說必填的引數不填,輸入整數型別的,傳入字串型別,長度是10的,傳11,總之就是你說怎麼來,我就不怎麼來,其實也就這三種,必傳非必傳、引數型別、入參長度。

3、測試工具
介面測試的工具很多,比如 postman、RESTClient、jmeter、SoapUI等,首推的測試工具是postman和jmeter這兩款。

相關文章