關於面試總結9-接口測試面試題


前言

接口測試最近幾年被炒的火熱了,越來越多的測試同行意識到接口測試的重要性。接口測試為什么會如此重要呢?
主要是平常的功能點點點,大家水平都一樣,是個人都能點,面試時候如果問你平常在公司怎么測試的,你除了說點點點,還能說什么呢,無非就是這個項目點完了點那個項目,
這就是為什么各行各業的只要手指能點得動的人都來轉行軟件測試了。面試的時候面試官希望你除了點點點,還能更深入一點的思考頁面上看不到的功能,也就是接口測試了。

為什么要做接口測試?

到底什么是接口測試,我們為什么要做接口測試?這是很多初入行的小伙伴的一個疑問,講理論的你可能看不進去,接下來講個實際案例,如下圖一個提現功能

比如這個輸入框,平常拿到這個web頁面,會對輸入框做用例設計:

  • 輸入一個負數(如:-100),點提交
  • 輸入金額為0(如:0),點提交
  • 輸入金額為0-100的數(如:20),點提交
  • 輸入金額為100(如:100),點提交
  • 輸入金額大於100(如:108),點提交
  • 輸入1位小數(如:10.1),點提交
  • 輸入2位小數(如:10.12),點提交
  • 輸入3位小數(如:10.123),點提交

按照這個等價類,邊界值用例測完,頁面上不能輸入負數和大於3位數小數點,然后就可以上線了。
然而。。。突然有一天數據庫里面插入了一個提現金額為負數(-100),於是整個部門炸鍋了,首先找到測試(背鍋)去復現問題,測試在頁面上反復輸入負數,無法提交,認為沒問題啊!

首先前端開發對輸入框是做了限制的,前端的web開發肯定沒問題,這個鍋前端開發MM不背。那么如果別人用戶不通過你的web頁面,直接發請求提交了呢?
納尼!!!不通過頁面也能提交。。。這就是我們接下來要提到的接口測試了。

接口測試能發現哪些問題

面試題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、名稱、價格都傳的時候能不能修改成功。

  • 接口安全:
    1、繞過驗證,比如說購買了一個商品,它的價格是300元,那我在提交訂單時候,我把這個商品的價格改成3元,后端有沒有做驗證,更狠點,我把錢改成-3,是不是我的余額還要增加?
    2、繞過身份授權,比如說修改商品信息接口,那必須得是賣家才能修改,那我傳一個普通用戶,能不能修改成功,我傳一個其他的賣家能不能修改成功
    3、參數是否加密,比如說我登陸的接口,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請求,就能獲取到你的信息了,加密規則是否容易破解。
    4、密碼安全規則,密碼的復雜程度校驗

  • 異常驗證:
      所謂異常驗證,也就是我不按照你接口文檔上的要求輸入參數,來驗證接口對異常情況的校驗。比如說必填的參數不填,輸入整數類型的,傳入字符串類型,長度是10的,傳11,總之就是你說怎么來,我就不怎么來,其實也就這三種,必傳非必傳、參數類型、入參長度。

  • 性能測試
    接口並發情況,如上面提到的:一個賬號,同時(大於2個請求)對最后一個商品下單,或不同賬號,對最后一個商品下單
    接口響應時間,響應時間太長了,肯定需要優化,一般都是毫秒級別

用什么工具測

面試題3:平常用什么工具測接口的

接口測試工具很多,首先postman

其次用jmeter

webService接口

面試題4:webService接口是如何測試的

webService接口用SoapUI

沒有接口文檔如何做接口測試

面試題5:沒有接口文檔,如果做接口測試?(這是個送命題)

沒有接口文檔,那還能咋辦,瞎測唄!一個公司的開發流程里面,如果接口文檔都沒有,是無法展開接口測試的,你都不知道這個接口干什么的,也不知道具體每個字段代表什么意思,那還測啥呢?
--當然,你肯定不能回答面試官不測(心理mmp,臉上笑嘻嘻),接下來就是扯犢子時間
1.沒有接口文檔,那就需要先跟開發溝通,然后整理接口文檔(本來是開發寫的,沒辦法,為了唬住面試官,先說自己整理了)
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
這種情況很容易判斷,先抓包看請求報文,對着接口文檔,看請求報文有沒問題,有問題就是前端發的數據不對
請求報文沒問題,那就看返回報文,返回的數據不對,那就是后端開發的問題咯

交流QQ群:779429633


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM