小編在后臺收到一些留言,大家都對接口很感興趣,特地去搜羅了一番找到了最新的接口面試題,來幫助大家面對各種接口面試。如果有同學(xué)還是覺得看文字理解太麻煩,可以留言告訴我,如果人多的話,我去慫恿咱們松勤的老師出一期直播,專門講解這些題目和所涉及到的知識點(diǎn)和拓展。
1、什么是HTTP協(xié)議無狀態(tài)協(xié)議?怎么解決HTTP協(xié)議無狀態(tài)協(xié)議
是指協(xié)議對于事務(wù)處理沒有記憶能力,服務(wù)器不知道客戶端是什么狀態(tài)。即我們給服務(wù)器發(fā)送 HTTP 請求之后,服務(wù)器根據(jù)請求,會給我們發(fā)送數(shù)據(jù)過來,但是,發(fā)送完,不會記錄任何信息。
解決方案:通過cookie和session來保持狀態(tài)。
2、HTTP協(xié)議學(xué)了哪幾個(gè)版本
http協(xié)議目前有4個(gè)版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互聯(lián)網(wǎng)上被廣泛使用,2.0版本目前應(yīng)用很少,是下一代的http協(xié)議。
3、Session和Cookies區(qū)別
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。
cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙
考慮到安全應(yīng)當(dāng)使用session。
session會在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能
考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE。
單個(gè)cookie保存的數(shù)據(jù)不能超過4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie。
4、HTTPS在哪一層, 會話層在第幾層
https工作在應(yīng)用層.
會話層為7層協(xié)議的第五層,為表示層提供建立、維護(hù)和結(jié)束會話連接的功能,并提供會話管理服務(wù)。
5、你熟悉OSI協(xié)議嗎?原理是什么
OSI是一個(gè)開放性的通信系統(tǒng)互連參考模型,它是一個(gè)定義得非常好的協(xié)議規(guī)范。OSI模型有7層結(jié)構(gòu),每層都可以有幾個(gè)子層。OSI的7層從上到下分別是 7 應(yīng)用層 6 表示層 5 會話層 4 傳輸層 3 網(wǎng)絡(luò)層 2 數(shù)據(jù)鏈路層 1 物理層 ;其中高層(即7、6、5、4層)定義了應(yīng)用程序的功能,下面3層(即3、2、1層)主要面向通過網(wǎng)絡(luò)的端到端,點(diǎn)到點(diǎn)的數(shù)據(jù)流。
6、從HTTP變化到HTTPS協(xié)議,測試點(diǎn)
注意一些配置是否同步修改
有些url是否是寫死在代碼的,需要同步修改
有些通過類cms配置的頁面,需要更新檢查是否更新域名
如果有存在和第三方接口聯(lián)調(diào)的,需要檢查是否彼此都更新了。
相關(guān)聯(lián)業(yè)務(wù)系統(tǒng)之間互相調(diào)用是否存在問題,比如http調(diào)用https的情況。
7、購物車模塊, 加入購物車接口測試點(diǎn)分析
接口入?yún)⑿r?yàn):是否必填,臨界值,默認(rèn)值,枚舉值,參數(shù)組合
業(yè)務(wù)邏輯校驗(yàn):新增商品進(jìn)購物車,當(dāng)購物車達(dá)到最大值是否可以添加,重復(fù)添加單一商品驗(yàn)證最大添加次數(shù),沒有庫存的商品是否可以添加到購物車,一次添加超過庫存量的商品。
安全性:是否校驗(yàn)登錄狀態(tài)
異常:接口的異常返回結(jié)果是否有專有提示,如網(wǎng)絡(luò)異常,接口超時(shí),系統(tǒng)異常
性能:多用戶并發(fā)操作購物車,同一商品被多用戶同時(shí)操作到購物車
8、http://...?orderId=,**, 接口設(shè)計(jì)用例
接口入?yún)㈤L度是否滿足get接口url的長度
不同的orderid是返回不同的訂單信息
orderid不存在的情況,接口返回
orderid過長過短的情況,接口返回
刪除一些非必填項(xiàng)入?yún)?,調(diào)用接口,返回什么
刪除一些必填項(xiàng)入?yún)?,調(diào)用接口,返回什么
不同的入?yún)⒔M合,正常的組合異常的組合,返回什么
9、一個(gè)訂單的幾種狀態(tài)如何全部測到,如:未處理,處理中,處理失敗,處理成功
未處理和處理成功都好測試,正常流程就可以覆蓋
處理中可以通過制造網(wǎng)絡(luò)延遲來觀測處理中的狀態(tài),或者用fiddler來打斷點(diǎn)
處理失敗可以通過網(wǎng)絡(luò)超時(shí)來呈現(xiàn)處理失敗的狀態(tài),或者抓包修改接口返回值為處理失敗的狀態(tài)。
10、你平常做接口測試的過程中發(fā)現(xiàn)過哪些Bug
權(quán)限未處理,導(dǎo)致一般用戶可以通過接口獲取管理員權(quán)限
可以輸入一些前端限制過的值,比如提取積分接口,通過修改積分為負(fù)數(shù),這個(gè)在前端無法測試,因?yàn)榍岸藭拗颇愕妮斎胫挡荒転樨?fù),而接口沒做相關(guān)限制,導(dǎo)致你的積分越提取越多。
11、平常你是怎么測試接口的
根據(jù)接口文檔設(shè)計(jì)接口測試用例,使用postman工具實(shí)現(xiàn)測試用例,根據(jù)不同的用例設(shè)置不同的斷言,并且保存在集合中??梢酝ㄟ^執(zhí)行集合的方式重復(fù)批量執(zhí)行接口測試用例。
把接口的url設(shè)置為環(huán)境變量,當(dāng)需要切換不同的環(huán)境的時(shí)候,只需要使用postman的切換環(huán)境功能就可以自由切換,在不同環(huán)境下測試接口。
設(shè)計(jì)接口與接口之間有關(guān)聯(lián)的測試用例,通過postman在斷言中設(shè)置環(huán)境變量的方式,保存上游接口的返回值,下游接口調(diào)用這個(gè)變量,完成接口與接口的關(guān)聯(lián)場景的測試
12、平常用什么工具測接口的
postman SoapUI jmeter
13、不可逆的操作,如何處理,比如刪除一個(gè)訂單這種接口如何測試
關(guān)注接口的返回值是否正常
關(guān)注數(shù)據(jù)庫中的訂單表的數(shù)據(jù)是否被刪除
關(guān)注是否有刪除記錄表存放相關(guān)刪除的記錄,方便日后可以追溯
14、測試的數(shù)據(jù)你放在哪
本地文件的形式存放
15、response怎么驗(yàn)證, 參數(shù)特別多
postman使用斷言的方式進(jìn)行判斷
16、做接口測試如何分析是前端還是后端的問題
抓包,查看接口的返回值,根據(jù)返回值和前端頁面的展示作比較,判斷是前端對這個(gè)值的處理有問題
還是后端返回的值是錯(cuò)誤的。
17、在測試接口中怎么知道請求成功還是失敗
根據(jù)接口文檔查看具體入?yún)?yīng)該返回什么值,和接口實(shí)際上返回的值做對比。
18、請?jiān)敿?xì)闡述接口測試和UI測試在測試活動(dòng)中是如何協(xié)同測試的?
有些ui測試無法實(shí)現(xiàn)的場景可以用接口進(jìn)行輔助測試,比如前端ui會對某些輸入框作出限制,
導(dǎo)致某些負(fù)值,超出最大長度限制的值無法測試,而通過接口就可以發(fā)送這樣的值。
ui有時(shí)候還會對某一個(gè)功能重復(fù)點(diǎn)擊作出限制,如果想測試用戶在網(wǎng)絡(luò)系統(tǒng)異常的情況下連續(xù)點(diǎn)擊了2次這個(gè)按鈕,那么通過前端點(diǎn)擊可能測試不了,就要通過接口連續(xù)并發(fā)的方式測試
19、很多接口都需要登錄怎么處理?
如果是postman工具的話,把登錄的cookie值存儲在環(huán)境變量中,需要登錄狀態(tài)的接口直接引用該環(huán)境變量去實(shí)現(xiàn)。
20、依賴于登錄的接口如何處理 -token 和 session的管理
答案同19題
21、在手工接口測試或自動(dòng)化接口測試的過程中,上下游接口有數(shù)據(jù)依賴如何處理?
postman工具,使用斷言工具中的設(shè)定環(huán)境變量。對上游接口的返回值中的依賴數(shù)據(jù)進(jìn)行變量化,然后在下游接口的入?yún)⒅幸迷撟兞?,完成依賴?/p>
22、接口測試中依賴登錄狀態(tài)的接口如何測試
答案同19題
23、下個(gè)接口請求參數(shù)依賴上個(gè)接口的返回?cái)?shù)據(jù)
答案同21題
24、Web Service接口是如何測試的
開發(fā)人員要到接口的wsdl地址和接口設(shè)計(jì)說明書。
在soapui中新建工程,導(dǎo)入wsdl地址。
選擇自己要測試的接口的方法,選擇request。
根據(jù)接口設(shè)計(jì)說明書選擇要測試方法的xml請求,并粘貼到soapui的請求欄,然后用自己的測試數(shù)據(jù)替換原有的xml請求中的參數(shù)。
點(diǎn)擊運(yùn)行,查看返回的xml響應(yīng),并參照接口設(shè)計(jì)說明書及自己的輸入?yún)?shù),確定接口返回的xml響應(yīng)是否是預(yù)期結(jié)果,以判斷接口是否是通的
25、TCP報(bào)頭格式
(1)16位端口號:告訴主機(jī)該報(bào)文段是來自哪里,以及傳給哪個(gè)上層協(xié)議或者應(yīng)用程序(目的端口)的。
(2)32位序號:給發(fā)送的數(shù)據(jù)編號。(隨機(jī)值+偏移量(偏移量決定序號的大?。?;32位序號能夠指定數(shù)據(jù)傳送過去的序號。
作用:A、保證發(fā)送的數(shù)據(jù)有序;B、保證重復(fù)的數(shù)據(jù)報(bào)被丟棄。
(3)32位確認(rèn)號:對A端發(fā)送的數(shù)據(jù)進(jìn)行確認(rèn)并回饋的序號。(在32位序中的序號值加1返回回去)。
作用:保證數(shù)據(jù)能夠有效地到達(dá)對端。
(4)4位頭部長度:因?yàn)?位最大能表示15,所以最大為60個(gè)字節(jié)。
(5)6位標(biāo)志位:
PSH:通知盡快讀取數(shù)據(jù);
RST:請求重新建立連接;
SYN:請求建立連接;
FIN:請求斷開連接;
ACK:表示確認(rèn)號是否有效;
URG:表示禁忌之陣是否有效。
(6)16位窗口大?。嚎刂瓢l(fā)送數(shù)據(jù)的速度或流量。
(7)16位校驗(yàn)和:由發(fā)送端填充,接收端對TCP報(bào)文段在傳輸過程中是否損壞。檢驗(yàn)不僅包括頭部部分,還包括數(shù)據(jù)部分。
(8)16位緊急指針:一個(gè)正的偏移量(相當(dāng)于當(dāng)前序號的偏移)。緊急指針是發(fā)送端向接收端發(fā)送緊急數(shù)據(jù)的方法。
TCP的特點(diǎn)的可靠性就體現(xiàn)在:32位序號,32位確認(rèn)號16位校驗(yàn)和。面向連接體現(xiàn)在:URG、RST、SYN、FIN、ACK、PSH等六位標(biāo)志。
