天天看點

接口測試-面試題

1.什麼是接口測試?

  • :是測試系統元件間接口的一種測試方法
  • :檢查資料的交換,資料傳遞的正确性,以及接口間的邏輯依賴關系
  • :在軟體開發的同時實作并行測試,減少頁面層測試的深度,縮短整個項目的測試周期

2.接口自動化測試的流程?

基本的接口功能自動化測試流程為:需求分析-->用例設計-->腳本開發-->測試執行-->結果分析

3.GET請求和POST請求差別是什麼?

  1. :用于資訊擷取,相對而言是安全和幂等的;在做資料查詢時,建議用GET方式,如:商品資訊接口、搜尋接口、部落格訪客接口...
  2. :表示可能會修改伺服器上資源的請求;在做資料添加、修改時,建議用POST方式。如:上傳圖檔接口、登入注冊接口...

誤區:

“GET是從伺服器上擷取資料,POST是向伺服器傳送資料”(該說法有誤)

解析:

GET/POST都可以送出資料,GET請求也可以向伺服器傳遞資料,POST請求也需要伺服器傳回資料

4.接口測試的常用工具有哪些?

  • Postman
  • JMeter
  • SoapUI

5.HTTP接口的請求參數類型有哪些?

  • Query String Parameters參數)一般用于GET請求,會以url string的形式進行傳遞
  • Request Body)一般用于POST請求,可以使用Content-Type來指定不同參數類型

6.如何從上一個接口擷取相關的響應資料傳遞到下一個接口?

先從上一個接口中的響應資料擷取對應的傳回值,然後使用正規表達式or使用JSON解析來提取需要擷取的值,然後存儲在一個變量中,最後在下一個接口中直接引用該變量即可

7.接口測試用例的編寫要點有哪些?

1)必填字段:請求參數必填項、可選項

2)合法性:輸入輸出合法、非法參數

3)邊界:請求參數邊界值等

4)容錯能力:大容量資料、頻繁請求、重複請求(如:訂單)、異常網絡等的處理

5)響應資料校驗:斷言、資料提取傳遞到下一級接口...

6)邏輯校驗:如兩個請求的接口有嚴格的先後順序,需要測試調轉順序的情況

7)性能:對接口模拟并發測試,逐漸加壓,分析瓶頸點

8)安全性:構造惡意的字元請求,如:SQL注入、XSS、敏感資訊、業務邏輯(如:跳過某些關鍵步驟;未經驗證操縱敏感資料)

8.接口測試的步驟有哪些?

1)發送接口請求

2)測試接口擷取傳回值

3)斷言:判斷實際結果是否符合預期

9.接口測試中依賴登入狀态的接口如何測試?

依賴登最狀态的接口,本質上是在每次發送請求時需要帶上存儲有賬戶有效資訊的Session或Cookie才能發送成功,在建構POST請求時添加必要的Session或Cookie

為什麼要做接口測試?

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

接口測試-面試題

比如這個輸入框,平常拿到這個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

這種情況很容易判斷,先抓包看請求封包,對着接口文檔,看請求封包有沒問題,有問題就是前端發的資料不對

請求封包沒問題,那就看傳回封包,傳回的資料不對,那就是後端開發的問題咯

postman如何使用

https://blog.csdn.net/five3/article/details/53021084  使用詳解

1 建立一個項目

2 新增一個用例

3、添加請求資訊

    選擇一個請求方法,如:get或post

  • url,如:http://www.baidu.com
  • get則請求參數直接寫在url後,用?連接配接
  • post則請求添加在body中
  • “send”發送請求

也可以批量執行用例和變量的設定

fiddler如何使用

https://www.cnblogs.com/woaixuexi9999/p/9247705.html

繼續閱讀