字字珠璣!接口測(cè)試面試題和面試官扯得明明白白!

1,目前市面上流行的接口大多有哪幾種協(xié)議的接口?
答:http,https,dubbo,rpc等即可。
2,接口的請(qǐng)求方式有哪幾種?
答:get,post,put,delete,head,Trace,opions等,大多以get和post請(qǐng)求為主
3、get和post區(qū)別是什么?
答:POST和GET都是向服務(wù)器提交數(shù)據(jù),并且都會(huì)從服務(wù)器獲取數(shù)據(jù)。
區(qū)別:
(1)傳送方式:get通過(guò)地址欄傳輸,post通過(guò)報(bào)文傳輸,故而post更相對(duì)來(lái)說(shuō)私密性一點(diǎn)
(2)傳送長(zhǎng)度:get參數(shù)有長(zhǎng)度限制(受限于url長(zhǎng)度),而post無(wú)限制
(3)get請(qǐng)求參數(shù)會(huì)被完整保留在瀏覽歷史記錄里,而post中的參數(shù)不會(huì)被保留
(4)get方式大多用作查詢接口,獲取響應(yīng)數(shù)據(jù);而post方式更多做數(shù)據(jù)添加、修改或刪除等操作

4,post請(qǐng)求的請(qǐng)求類型有哪幾種?
?
application/json json字符串
?
?
application/x-www-from-urlencoded 表單傳遞
?
?
multipart/form-data 主要用于上傳文件
?
5、cookie和session的區(qū)別
?
cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上
?
?
cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session
?
?
session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面應(yīng)當(dāng)使用cookie
?
?
單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie
?
?
可以將登陸信息等重要信息存放為session;其他信息需要保存,可以放在cookie
?
6、請(qǐng)求接口中常見的返回狀態(tài)碼
答:
a.
1xx -- 信息提示(表示臨時(shí)的響應(yīng)??蛻舳嗽谑盏匠R?guī)響應(yīng)之前,準(zhǔn)備接收一個(gè)或多個(gè)1xx響應(yīng))
b.
c.
2xx -- 成功(表明服務(wù)器成功地接受了客戶端請(qǐng)求)
d.
e.
3xx -- 重定向(客戶端瀏覽器必須采取更多操作來(lái)實(shí)現(xiàn)請(qǐng)求,例如用戶未登錄就操作了修改的功能)
f.
g.
4xx -- 客戶端錯(cuò)誤(發(fā)送錯(cuò)誤,客戶端有問(wèn)題)
h.
i.
5xx -- 服務(wù)器錯(cuò)誤(服務(wù)器由于遇到錯(cuò)誤而不能完成該請(qǐng)求)
j.
常見的有:
?
200 OK:服務(wù)器成功返回用戶請(qǐng)求的數(shù)據(jù)
?
?
201:用戶新建或修改數(shù)據(jù)成功
?
?
202:表示一個(gè)請(qǐng)求已經(jīng)進(jìn)入后臺(tái)排隊(duì)(異步任務(wù))
?
?
301:刪除請(qǐng)求數(shù)據(jù)
?
?
302:在其他地址發(fā)現(xiàn)了請(qǐng)求數(shù)據(jù)
?
?
303:建議客戶訪問(wèn)其他URL或訪問(wèn)方式
?
?
304:客戶端已經(jīng)執(zhí)行了GET,但文件未變化
?
?
400 :用戶發(fā)出的請(qǐng)求有錯(cuò)誤,服務(wù)器沒(méi)有進(jìn)行新建或修改數(shù)據(jù)的操作
?
?
401:表示用戶沒(méi)有權(quán)限(令牌、用戶名、密碼錯(cuò)誤)
?
?
403 :表示用戶得到授權(quán)(與401錯(cuò)誤相對(duì)),但是訪問(wèn)被禁止
?
?
404:用戶發(fā)出的請(qǐng)求針對(duì)得到是不存在的記錄,服務(wù)器沒(méi)有進(jìn)行操作,該操作是冪等的
?
?
500:服務(wù)器發(fā)生錯(cuò)誤,用戶將無(wú)法判斷發(fā)出的請(qǐng)求是否成功。
?
?
502:服務(wù)器返回超時(shí)
?

7、接口測(cè)試用例如何進(jìn)行設(shè)計(jì)
?
針對(duì)輸入,可按照參數(shù)類型進(jìn)行設(shè)計(jì),參數(shù)是否必填,參數(shù)之間是否存在關(guān)聯(lián),參數(shù)數(shù)據(jù)類型限制,參數(shù)數(shù)據(jù)類型自身的數(shù)據(jù)范圍值限制;
?
?
針對(duì)接口處理,可按照邏輯進(jìn)行用例設(shè)計(jì);
?
?
針對(duì)輸出,可根據(jù)結(jié)果進(jìn)行分析設(shè)計(jì)。
?
8、如何分析是前端還是后端的問(wèn)題
答:
?
檢查接口,前端和后臺(tái)之間是通過(guò)接口文件相互聯(lián)系的,需要查看接口文件
?
?
檢查請(qǐng)求的數(shù)據(jù)是什么,反饋的數(shù)據(jù)又是什么
?
?
頁(yè)面可以直接F12,或者抓包查看。如果發(fā)送的數(shù)據(jù)是正確的,但是后臺(tái)反饋的數(shù)據(jù)是不符合需求的,那就是后臺(tái)的問(wèn)題;如果前端沒(méi)有請(qǐng)求接口或請(qǐng)求的時(shí)候發(fā)送數(shù)據(jù)與需求不符,那這個(gè)時(shí)候就是前端的問(wèn)題了。
?
9、接口測(cè)試中,下游接口需要依賴上游接口的數(shù)據(jù),該如何處理?
答:在工具中可以使用全局變量等方式將需要的數(shù)據(jù)進(jìn)行傳送,或者使用對(duì)響應(yīng)數(shù)據(jù)進(jìn)行提取,傳給下游接口。
10、依賴第三方數(shù)據(jù)的接口如何進(jìn)行測(cè)試?
答:可以使用fiddler進(jìn)行調(diào)用接口時(shí)預(yù)設(shè)期望響應(yīng),mock返回自己設(shè)置的響應(yīng)數(shù)據(jù),最大限度的降低對(duì)第三方數(shù)據(jù)接口的依賴
11、若請(qǐng)求的接口需要先登錄后方可請(qǐng)求,如何進(jìn)行接口測(cè)試?
答:請(qǐng)求登錄口獲取返回的響應(yīng)頭,或者響應(yīng)信息中的數(shù)據(jù),cookie,token,session等,傳遞給依賴登錄接口的請(qǐng)求頭中,發(fā)起請(qǐng)求即可。

面試訓(xùn)練營(yíng):https://www.bilibili.com/video/BV1Vi4y137qq