一、前言
接口測(cè)試最近幾年被炒的火熱了,越來(lái)越多的測(cè)試同行意識(shí)到接口測(cè)試的重要性。接口測(cè)試為什么會(huì)如此重要呢? 主要是平常的功能點(diǎn)點(diǎn)點(diǎn),大家水平都一樣,是個(gè)人都能點(diǎn),面試時(shí)候如果問(wèn)你平常在公司怎么測(cè)試的,你除了說(shuō)點(diǎn)點(diǎn)點(diǎn),還能說(shuō)什么呢,無(wú)非就是這個(gè)項(xiàng)目點(diǎn)完了點(diǎn)那個(gè)項(xiàng)目, 這就是為什么各行各業(yè)的只要手指能點(diǎn)得動(dòng)的人都來(lái)轉(zhuǎn)行軟件測(cè)試了。面試的時(shí)候面試官希望你除了點(diǎn)點(diǎn)點(diǎn),還能更深入一點(diǎn)的思考頁(yè)面上看不到的功能,也就是接口測(cè)試了。接口測(cè)試可不是下圖的USB接口哈,接口是看不見(jiàn)的,但是可以訪問(wèn)!
二、2023非常全的接口測(cè)試面試題及參考答案
如果你覺(jué)得此文對(duì)你有幫助,如果你對(duì)此文有任何疑問(wèn),如果你對(duì)軟件測(cè)試、接口測(cè)試、自動(dòng)化測(cè)試、面試經(jīng)驗(yàn)交流感興趣歡迎加入軟件測(cè)試技術(shù)群:695458161,群里發(fā)放的免費(fèi)資料都是筆者十多年測(cè)試生涯的精華。還有同行大神一起交流技術(shù)哦。
1、你們公司的接口測(cè)試流程是怎樣的?(有沒(méi)有感覺(jué)熟悉,貌似在哪里聽(tīng)過(guò))
接口測(cè)試我們是在XX項(xiàng)目做的,主要有XX接口,XX接口,XX接口等。
1、首先是從開(kāi)發(fā)那里拿到API接口文檔,了解接口業(yè)務(wù)、包括接口地址、請(qǐng)求方式,入?yún)ⅰ⒊鰠?,token鑒權(quán),返回格式等信息。
2、然后使用Postman或Jmeter工具執(zhí)行接口測(cè)試,一般使用Jmeter的步驟是這樣的:
1、首先新建一個(gè)線程組。
2、然后就是新建一個(gè)HTTP請(qǐng)求默認(rèn)值。(輸入接口服務(wù)器IP和端口)
3、再新建很多HTTP請(qǐng)求,一個(gè)請(qǐng)求一個(gè)用例。(輸入接口路徑,訪問(wèn)方式,參數(shù)等。)
4、然后創(chuàng)建斷言和查看結(jié)果樹(shù)。
3、最后調(diào)試并執(zhí)行用例,最后編寫(xiě)接口測(cè)試報(bào)告
4、其實(shí)我們做接口的時(shí)候也碰到了蠻多的問(wèn)題,都是自己獨(dú)立解決的,比如返回值亂碼(修改jmeter的配置文件為UTF-8編碼方式),比如需要登錄后才能取得token鑒權(quán)碼并且這個(gè)鑒權(quán)碼在下面的請(qǐng)求中需要用到(使用正則表達(dá)式提取器提取token的值等。
2、請(qǐng)簡(jiǎn)述一下cookie、session以及token的區(qū)別(有沒(méi)有感覺(jué)整個(gè)是萬(wàn)年不變的面試題)
(1)cookie數(shù)據(jù)存放在客戶(hù)的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。而token是接口測(cè)試時(shí)的鑒權(quán)碼,一般情況下登陸后才可以獲取到token,然后在每次請(qǐng)求接口時(shí)需要帶上token參數(shù)。
(2)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
(3)可以將登陸信息等重要信息存放為session;其他信息需要保存,可以放在cookie
3、接口測(cè)試如何設(shè)計(jì)測(cè)試用例?(必問(wèn))
接口測(cè)試一般考慮入?yún)⑿问降淖兓徒涌诘臉I(yè)務(wù)邏輯,一般設(shè)計(jì)接口測(cè)試用例采用等價(jià)類(lèi)、邊界值、場(chǎng)景法居多!
接口測(cè)試設(shè)計(jì)測(cè)試用例的思路如下:
1.接口業(yè)務(wù)邏輯測(cè)試?(正例)
接口邏輯測(cè)試是指根據(jù)業(yè)務(wù)邏輯、輸入?yún)?shù)、輸出值的描述,對(duì)正常輸入情況下所得的輸出值
是否正確的測(cè)試,也就是測(cè)試對(duì)外提供的接口服務(wù)是否正常工作。
2.模塊接口測(cè)試?(反例)
模塊接口測(cè)試是為了保證數(shù)據(jù)的安全及程序在異常情況下的邏輯的正確性而進(jìn)行的測(cè)試。?
模塊接口測(cè)試的主要包括以下幾個(gè)方面:?
1)鑒權(quán)碼token異常(鑒權(quán)碼為空<沒(méi)有鑒權(quán)碼>,錯(cuò)誤的鑒權(quán)碼,過(guò)期的鑒權(quán)碼)。
2)其他參數(shù)異常。
1、必填項(xiàng)檢查
2、參數(shù)的長(zhǎng)度、類(lèi)型、格式異常:
常規(guī)參數(shù):(數(shù)字、字符串、日期)
參數(shù)長(zhǎng)度:6-18位?;蛏矸葑C、電話的長(zhǎng)度。
參數(shù)類(lèi)型:數(shù)字(精度),字母,中文,帶空格的參數(shù),特殊字符。
日期格式:日期:年月日,年月日時(shí)分秒,日期格式(包括/,-,:等)。
3)錯(cuò)誤碼異常覆蓋。
4)接口測(cè)試其他的關(guān)注點(diǎn)
接口有翻頁(yè)時(shí),頁(yè)碼與頁(yè)數(shù)的異常值測(cè)試
數(shù)據(jù)庫(kù)的增刪改查,比如一個(gè)post接口操作完成后,通過(guò)列表頁(yè)接口看下新的數(shù)據(jù)是否和剛才的post一致
接口返回的圖片地址能否打開(kāi),圖片尺寸是否符合需求
當(dāng)輸出參數(shù)有聯(lián)動(dòng)性時(shí),需要校驗(yàn)返回兩參數(shù)的實(shí)際結(jié)果是否都符合需求。
所有列表頁(yè)接口必須考慮排序值
所有功能都要考慮兼容舊版本
4、接口測(cè)試執(zhí)行中比對(duì)數(shù)據(jù)庫(kù)嗎?
肯定啊,因?yàn)榻涌诜祷刂档臄?shù)據(jù)來(lái)源于數(shù)據(jù)庫(kù),接口對(duì)數(shù)據(jù)的操作還要進(jìn)行深層次的數(shù)據(jù)庫(kù)檢查!
5、談?wù)勀銓?duì)HTTP協(xié)議的了解?
超文本傳輸協(xié)議,端口為80,特點(diǎn)(無(wú)記憶功能、快速)是由請(qǐng)求和響應(yīng)兩部分組成請(qǐng)求由請(qǐng)求頭、請(qǐng)求行、請(qǐng)求正文組成;響應(yīng)是由響應(yīng)頭、響應(yīng)行、響應(yīng)正文組成,之前我們公司的接口是采用https協(xié)議的。
https http+ssl協(xié)議 端口443 面向安全的超文本傳輸協(xié)議
6、get和post請(qǐng)求有什么區(qū)別?
get和post請(qǐng)求都是客戶(hù)端向服務(wù)器提交的一種請(qǐng)求方式
get是明文傳輸參數(shù)、傾向于請(qǐng)求服務(wù)器資源。比如打開(kāi)網(wǎng)站
post傳輸數(shù)據(jù)不可見(jiàn),安全性高,傾向于向服務(wù)器提交數(shù)據(jù),比如注冊(cè)等
7、響應(yīng)狀態(tài)碼有哪些?
1xx:指示信息--表示請(qǐng)求已接受,繼續(xù)處理
2xx:成功--表示請(qǐng)求已被成功接收、理解、接受
3xx:重定向--要完成請(qǐng)求必須進(jìn)行更進(jìn)一步的操作
4xx:客戶(hù)端錯(cuò)誤--請(qǐng)求有語(yǔ)法錯(cuò)誤或請(qǐng)求無(wú)法實(shí)現(xiàn)
5xx:服務(wù)器端錯(cuò)誤--服務(wù)器未能實(shí)現(xiàn)合法的請(qǐng)求
8、在接口測(cè)試過(guò)程中發(fā)現(xiàn)的bug多不多?能舉幾個(gè)栗子?
這個(gè)問(wèn)題其實(shí)回到起來(lái)很簡(jiǎn)單,只要做過(guò)接口測(cè)試的,總能發(fā)現(xiàn)幾個(gè)BUG吧,把你平常發(fā)現(xiàn)的bug說(shuō)2-3個(gè)就可以了。 面試官出這個(gè)題,主要是想知道你是不是真的做過(guò)接口測(cè)試,畢竟現(xiàn)在很多小伙伴簡(jiǎn)歷都是寫(xiě)的假的(你要不寫(xiě)估計(jì)面試機(jī)會(huì)都沒(méi)有,沒(méi)辦法,為了生存,能理解) 比如,提現(xiàn)輸入框,在頁(yè)面上輸入負(fù)數(shù),肯定是無(wú)法提交過(guò)去(前端頁(yè)面會(huì)判斷金額),如果我不走前端,直接用接口工具發(fā)請(qǐng)求,輸入一個(gè)負(fù)數(shù)過(guò)去。 (假設(shè)服務(wù)端沒(méi)做提現(xiàn)金額數(shù)據(jù)判斷) 余額=當(dāng)前余額(100)-提現(xiàn)金額(-100),那么提現(xiàn)-100,余額就變成200了,也就是越提現(xiàn),余額越大了。
9、接口測(cè)試中有哪些要注意的測(cè)試點(diǎn)?
11.1)接口中返回了圖片地址,要手工去進(jìn)行圖片的測(cè)試(大小、內(nèi)容)
11.2)接口完成查詢(xún)功能的時(shí)候,數(shù)據(jù)返回的排序顯示
11.3)接口測(cè)試的時(shí)候,關(guān)注參數(shù)的默認(rèn)值、必填項(xiàng)
10、接口執(zhí)行測(cè)試后返回結(jié)果做對(duì)比,一般比對(duì)哪部分內(nèi)容?
之前必須要對(duì)比的就是返回狀態(tài)碼,其次再去對(duì)比返回其它關(guān)鍵內(nèi)容
11、為什么開(kāi)展接口測(cè)試?
13.1)接口測(cè)試屬于集成測(cè)試、測(cè)試介入越早、就越能在項(xiàng)目早期發(fā)現(xiàn)問(wèn)題,其修復(fù)問(wèn)題的成本越低
13.2)接口測(cè)試非??焖佟I自動(dòng)化執(zhí)行一個(gè)測(cè)試用例10S左右、接口測(cè)試用例執(zhí)行的話,需要的時(shí)間是毫秒級(jí)的
12、之前在接口測(cè)試過(guò)程中,使用的工具是什么?
postman或jmeter(5.1)
13、之前用過(guò)抓包工具沒(méi)有?如何使用的?
之前在項(xiàng)目中用過(guò)fiddler抓包工具進(jìn)行HTTP協(xié)議請(qǐng)求的抓取
打開(kāi)fiddler之后,默認(rèn)瀏覽器配置了127.0.0.1 8888端口的代理,在fiddler設(shè)置好過(guò)濾策略后,打開(kāi)需要進(jìn)行抓包的網(wǎng)站進(jìn)行操作,就可以進(jìn)行抓包
14、json數(shù)據(jù)是什么,你平時(shí)如何解析json數(shù)據(jù)?
一種開(kāi)發(fā)常用的數(shù)據(jù)報(bào)文格式,由鍵值對(duì)和數(shù)組兩種格式構(gòu)成??梢酝ㄟ^(guò)工具bejson網(wǎng)站等
15、postman你在工作中使用流程是什么樣的?
1) 編寫(xiě)好用例
2) 在postman先建好url環(huán)境變量
3) 根據(jù)接口用例所屬的模塊新建集合管理
4) 在集合中不同模塊下錄入測(cè)試用例
5) 錄入測(cè)試用例的時(shí)候根據(jù)預(yù)期結(jié)果在tests頁(yè)簽中增加斷言
6) 導(dǎo)出通過(guò)Newman去運(yùn)行
16、postman中設(shè)置環(huán)境變量有什么用?
在之前項(xiàng)目中,接口測(cè)試測(cè)試的環(huán)境有開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境等,為了測(cè)試的時(shí)候方便,就在postman設(shè)置環(huán)境變量,到時(shí)所有接口都引用該環(huán)境變量,這樣就不用為了切換環(huán)境導(dǎo)致每次都去修改被測(cè)系統(tǒng)接口的主機(jī)地址;點(diǎn)擊右上角環(huán)境變量管理按鈕-新建環(huán)境變量,在腳本中使用{{變量名}}去調(diào)用
17、在接口測(cè)試中關(guān)聯(lián)是什么含義?如何用postman設(shè)置關(guān)聯(lián)?
關(guān)聯(lián)就是把上一個(gè)接口返回值的部分截取出來(lái),作為下一個(gè)接口的參數(shù),能讓接口串聯(lián)運(yùn)行
在postman中設(shè)置關(guān)聯(lián)的步驟如下:
1) 先通過(guò)正則表達(dá)式提取的方式或json取值的方式把下一個(gè)接口需要的信息從上一個(gè)接口截取出來(lái)
2) 使用設(shè)置全局變量的代碼把取出來(lái)的值保存到全局變量
3) 在下一個(gè)接口中,使用{{全局變量}}代替要替換的靜態(tài)值
18、postman支持什么類(lèi)型的協(xié)議測(cè)試?
http和https協(xié)議的
19、postman參數(shù)化有哪幾種方式?
內(nèi)建變量、pre-scripts編寫(xiě)js腳本、批量運(yùn)行時(shí)導(dǎo)入csv或json格式的文件
20、Newman如何執(zhí)行postman腳本?
Newman run 腳本名稱(chēng) 也可以添加參數(shù)生成html報(bào)表等
21、jmeter之前用的是什么版本?如何安裝的?
jmeter用的是5.1.1版本,安裝如下:
先在電腦上安裝jdk1.8或以上的版本,然后從官網(wǎng)下載最新的安裝包,解壓后,進(jìn)行環(huán)境變量的配置,配置好后即安裝完成
22、在項(xiàng)目中如何用jmeter進(jìn)行接口測(cè)試?
1) 把線程組數(shù)量設(shè)置為1,循環(huán)次數(shù)設(shè)置為1
2) 配置好全局變量URL通過(guò)配置元件---用戶(hù)自定義的變量添加
3) 增加配置元件http請(qǐng)求默認(rèn)值,放置在用戶(hù)定義的變量之后
4) 添加事務(wù)控制器管理和組織測(cè)試用例
5) 在事務(wù)控制中添加http請(qǐng)求添加測(cè)試用例中的接口請(qǐng)求信息
6) 添加對(duì)應(yīng)的斷言元件進(jìn)行斷言
23、jmeter中如何設(shè)置斷言?
右擊請(qǐng)求---斷言---響應(yīng)斷言---響應(yīng)斷言界面輸入要檢查比對(duì)的項(xiàng),設(shè)置好斷言后,執(zhí)行接口測(cè)試如果是通過(guò)的,查看結(jié)果樹(shù)不會(huì)有任何提示,如果斷言失敗,就會(huì)有紅色報(bào)錯(cuò)。如果接口返回的數(shù)據(jù)是json數(shù)據(jù),也可以添加json斷言
24、jmeter中如何實(shí)現(xiàn)關(guān)聯(lián)?
先從上一個(gè)接口中通過(guò)正則表達(dá)式提取器或jsonpath解析器截取下一個(gè)接口需要的參數(shù)值保存到變量,然后在寫(xiě)一個(gè)接口中通過(guò)${變量名}去獲取
25、jmeter添加http請(qǐng)求默認(rèn)值元件有什么作用?
添加并設(shè)置好后,相當(dāng)于給所有的http請(qǐng)求取樣器都設(shè)置了默認(rèn)值,既不用填寫(xiě)取樣器中的比如主機(jī)地址、端口、代理等,都可以使用http請(qǐng)求默認(rèn)值設(shè)置的
26、jmeter參數(shù)化的方式有哪幾種可以實(shí)現(xiàn)?
1) 配置元件---用戶(hù)定義的變量元件可以設(shè)置全局變量
2) 函數(shù)助手對(duì)話框中可以選擇比如隨機(jī)字符串、隨機(jī)日期、隨機(jī)數(shù)字作為參數(shù)化文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-416772.html
3) 可以使用csv文件作為參數(shù)化,通過(guò)配置元件中的csv data set config元件進(jìn)行設(shè)置即可文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-416772.html
到了這里,關(guān)于2023非常全的接口測(cè)試面試題及參考答案-軟件測(cè)試工程師沒(méi)有碰到算我輸?shù)奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!