轉載的大佬文章:https://blog.csdn.net/gaofengyan/article/details/92647301html
接口測試的原理是模擬客戶端向服務器發送報文請求,服務器接收請求報文後對相應的報文作處理並向客戶端返回應答,客戶端接收應答的一個過程。
接口測試流程:前端
模擬客戶端鏈接服務器(服務器提供的端口是否可訪問)
↓
客戶端發送報文請求
↓
服務器端接收請求並作處理
↓
檢查返回的預期結果並與實際結果對比
↓
結束
接口測試用例設計:面試
接口測試的主要測試對象是接口,但隨着系統複雜度愈來愈高,接口愈來愈多,徹底覆蓋全部接口是很難的一件事情,且實際過程當中任意內部接口的變更均可能致使咱們測試用例的不可用。後端
因此一般狀況下咱們主要測試最外層的兩類接口:數據進入系統接口和數據流出系統接口數組
數據進入接口是模擬執行外部系統的接口(調用外部系統的參數爲本系統使用)瀏覽器
數據流出接口是驗證系統處理後的數據是否正常安全
在設計用例時還須要確認外部接口提供給使用這些接口的外部用戶什麼樣的功能,外部用戶真正須要什麼樣的功能服務器
接口測試用例設計和測試用例設計基本一致,用例設計的內容應該包括:主要測試功能點(測試目的)、預置條件(網絡環境、系統狀態)、測試數據、測試步驟以及預期結果。網絡
接口測試能發現哪些問題
面試題1:你日常作接口測試的過程當中發現過哪些bug?併發
這個問題其實回到起來很簡單,只要作過接口測試的,總能發現幾個BUG吧,把你日常發現的bug說2-3個就能夠了。
面試官出這個題,主要是想知道你是否是真的作過接口測試,畢竟如今不少小夥伴簡歷都是寫的假的(你要不寫估計面試機會都沒有,沒辦法,爲了生存,能理解)
好比上面說的,提現輸入框,在頁面上輸入負數,確定是沒法提交過去(前端頁面會判斷金額),若是我不走前端,直接用接口工具發請求,輸入一個負數過去。
(假設服務端沒作提現金額數據判斷)
餘額=當前餘額(100)-提現金額(-100),那麼提現-100,餘額就變成200了,也就是越提現,餘額越大了
能夠用接口工具去直接請求接口,也能夠fiddler抓包,抓到接口後修改金額爲負數
因此,接口測試的必要性就體現出來了:
1.能夠發現不少在頁面上操做發現不了的bug
2.檢查系統的異常處理能力
3.檢查系統的安全性、穩定性
4.前端隨便變,接口測好了,後端不用變
5.能夠測試併發狀況,一個帳號,同時(大於2個請求)對最後一個商品下單,或不一樣帳號,對最後一個商品下單
6.能夠修改請求參數,突破前端頁面輸入限制(如金額)
接口測試怎麼測
面試題2:日常你是怎麼測試接口的?
經過性驗證:首先確定要保證這個接口功能是好使的,也就是正常的經過性測試,按照接口文檔上的參數,正常傳入,是否能夠返回正確的結果。
參數組合:如今有一個操做商品的接口,有個字段type,傳1的時候表明修改商品,商品id、商品名稱、價格有一個是必傳的,type傳2的時候是刪除商品,商品id是必傳的,這樣的,就要測參數組合了,type傳1的時候,只傳商品名稱能不能修改爲功,id、名稱、價格都傳的時候能不能修改爲功。
接口安全:
一、繞過驗證,好比說購買了一個商品,它的價格是300元,那我在提交訂單時候,我把這個商品的價格改爲3元,後端有沒有作驗證,更狠點,我把錢改爲-3,是否是個人餘額還要增長?
二、繞過身份受權,好比說修改商品信息接口,那必須得是賣家才能修改,那我傳一個普通用戶,能不能修改爲功,我傳一個其餘的賣家能不能修改爲功
三、參數是否加密,好比說我登錄的接口,用戶名和密碼是否是加密,若是不加密的話,別人攔截到你的請求,就能獲取到你的信息了,加密規則是否容易破解。
四、密碼安全規則,密碼的複雜程度校驗
異常驗證:
所謂異常驗證,也就是我不按照你接口文檔上的要求輸入參數,來驗證接口對異常狀況的校驗。好比說必填的參數不填,輸入整數類型的,傳入字符串類型,長度是10的,傳11,總之就是你說怎麼來,我就不怎麼來,其實也就這三種,必傳非必傳、參數類型、入參長度。
性能測試
接口併發狀況,如上面提到的:一個帳號,同時(大於2個請求)對最後一個商品下單,或不一樣帳號,對最後一個商品下單
接口響應時間,響應時間太長了,確定須要優化,通常都是毫秒級別。
數據依賴
面試題6:在手工接口測試或者自動化接口測試的過程當中,上下游接口有數據依賴如何處理?
用一個全局變量來處理依賴的數據,好比登陸後返回token,其它接口都須要這個token,那就用全局變量來傳token參數
依賴第三方
面試題7:依賴於第三方數據的接口如何進行測試?
這個標準答案是:mock
接着面試官會問你,若是mock的,而後你就順着坑繼續挖,搭建mock服務,參考這篇【https://www.cnblogs.com/yoyoketang/p/9348552.html】
抓包
面試題8:當一個接口出現異常時候,你是如何分析異常的?
1.抓包,用fiddler工具抓包,或者瀏覽器上f12,app上的話,那就用fiddler設置代理,去看請求報文和返回報文了
2.查看後端日誌,xhell連上服務器,查看日誌
弱網
面試題9:如何模擬弱網測試
fiddler和charles均可以模擬弱網測試,日常說的模擬丟包,也是模擬弱網測試
分析bug是前端仍是後端的
面試題10:如何分析一個bug是前端仍是後端的?
日常提bug的時候,前端開發和後端開發老是扯皮,不認可是對方的bug
這種狀況很容易判斷,先抓包看請求報文,對着接口文檔,看請求報文有沒問題,有問題就是前端發的數據不對
請求報文沒問題,那就看返回報文,返回的數據不對,那就是後端開發的問題咯
————————————————版權聲明:本文爲CSDN博主「高風言」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/gaofengyan/article/details/92647301