測試中,接口測試的必要性與接口測試的基礎用例設計

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這兩款。