目前互聯(lián)網(wǎng)發(fā)展已經(jīng)有二十年了说铃,從最開(kāi)始的簡(jiǎn)單的工業(yè)互聯(lián)網(wǎng)到現(xiàn)在生活的方方面面,比如出行嘹履、聊天腻扇、醫(yī)療、汽車(chē)砾嫉、管理等各個(gè)方面幼苛,從之前的開(kāi)發(fā)兼任測(cè)試,就是開(kāi)發(fā)測(cè)試一人都干焕刮,到現(xiàn)在的需要指標(biāo)才能上線更新蚓峦,保證項(xiàng)目質(zhì)量舌剂,不管是大公司還是小公司,都注重質(zhì)量暑椰。
話不多說(shuō),進(jìn)入正文荐绝。本文是自己面試中碰見(jiàn)的一汽,也是大部分公司經(jīng)常問(wèn)題。暫不牽扯到接口性能低滩,性能的知識(shí)更多召夹,更廣、更細(xì)恕沫。
軟件測(cè)試基礎(chǔ)本文就暫不細(xì)說(shuō),一般都是測(cè)試方法监憎,測(cè)試?yán)碚撨@些,隨便看看就好了婶溯,這些不管是應(yīng)屆生和已經(jīng)有工作經(jīng)驗(yàn)的大佬來(lái)說(shuō)都很少問(wèn)了鲸阔。
1.get和post的區(qū)別(經(jīng)典)?
get通過(guò)URL傳輸數(shù)據(jù)迄委,post用URL和請(qǐng)求體傳輸數(shù)據(jù)是
get沒(méi)有post安全褐筛,但不是絕對(duì)的,因?yàn)榭梢宰グ?/p>
get數(shù)據(jù)大小有限制叙身,post沒(méi)有
2.http與https的區(qū)別(經(jīng)典)渔扎?
https需要申請(qǐng)ca證書(shū),一般免費(fèi)證書(shū)比較少信轿,需要收費(fèi)
http是超文本傳輸協(xié)議晃痴,信息是明文傳輸,https是具有安全性的ssl加密傳輸協(xié)議
http與https連接方式不同财忽,端口不一樣http:80 https:443
http連接無(wú)狀態(tài)倘核,https是由ssl+http協(xié)議構(gòu)成的可加密傳輸,身份認(rèn)證的網(wǎng)絡(luò)協(xié)議定罢,安全
3.https的連接過(guò)程笤虫?
把這個(gè)流程記下來(lái),匯總一下變成自己的語(yǔ)言祖凫,到時(shí)候回答的時(shí)候盡量詳細(xì)
4.請(qǐng)簡(jiǎn)述cookie與session琼蚯、token的區(qū)別(經(jīng)典)?
1.Cookie數(shù)據(jù)存放在客戶的瀏覽器上惠况,session是放到服務(wù)端 token是接口測(cè)試的鑒權(quán)碼一般情況下登錄后才可以獲取token遭庶,然后每次請(qǐng)求接口都要帶上token
2.Cookie不是很安全,別人分析存放本地的cookie并進(jìn)行cookie七篇稠屠,考慮到安全應(yīng)當(dāng)使用session峦睡,session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上翎苫,當(dāng)訪問(wèn)增加時(shí),應(yīng)該使用cookie榨了,減輕服務(wù)器性能
3.可以將登錄信息等重要信息存放為session煎谍,其他放在cookie上
5.http協(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)正文組成
6.接口用例的設(shè)計(jì)與執(zhí)行痘儡?
https://www.toutiao.com/i7012495041432142340/
7.多接口業(yè)務(wù)怎么測(cè)試?
自己可以舉例一下自己測(cè)的接口枢步,關(guān)聯(lián)型接口都有都需要把參數(shù)傳過(guò)來(lái)沉删,需要設(shè)置全局變量,把上個(gè)接口的值作為下個(gè)接口的請(qǐng)求值价捧。
8.舉幾個(gè)自己碰到的coke與說(shuō)明丑念?
200 OK - [GET]:服務(wù)器成功返回用戶請(qǐng)求的數(shù)據(jù)
201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數(shù)據(jù)成功
202 Aceepted - [*]:表示一個(gè)請(qǐng)求已經(jīng)進(jìn)入后臺(tái)排隊(duì)(異步任務(wù))
204 NO CONTENT - [DELETE]:用戶刪除數(shù)據(jù)成功
400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發(fā)出的請(qǐng)求有錯(cuò)誤,服務(wù)器沒(méi)有進(jìn)行新建或修改數(shù)據(jù)的操作
401 Unauthorized -[*] :表示用戶沒(méi)有權(quán)限(令牌结蟋、用戶名脯倚、密碼錯(cuò)誤)
403 Forbidden -[*] :表示用戶得到授權(quán)(與401錯(cuò)誤相對(duì)),但是訪問(wèn)被禁止
404 NOT FOUND -[*]:用戶發(fā)出的請(qǐng)求針對(duì)得到是不存在的記錄嵌屎,服務(wù)器沒(méi)有進(jìn)行操作推正,該操作是冪等的
406 Not Acceptable - [GET]:用戶請(qǐng)求的格式不可得(比如用戶請(qǐng)求JSON格式,但是只有XML格式)
500 INTERNAL SERVER ERROR - [*]:服務(wù)器發(fā)生錯(cuò)誤宝惰,用戶將無(wú)法判斷發(fā)出的請(qǐng)求是否成功
簡(jiǎn)單的總結(jié)一下:
1xx - 信息提示:這些狀態(tài)代碼表示臨時(shí)的響應(yīng)植榕。客戶端在收到常規(guī)響應(yīng)之前尼夺,應(yīng)準(zhǔn)備接收一個(gè)或多個(gè) 1xx 響應(yīng)尊残。
2xx - 成功:這類狀態(tài)代碼表明服務(wù)器成功地接受了客戶端請(qǐng)求。
3xx - 重定向:客戶端瀏覽器必須采取更多操作來(lái)實(shí)現(xiàn)請(qǐng)求淤堵。例如寝衫,瀏覽器可能不得不請(qǐng)求服務(wù)器上的不同的頁(yè)面,或通過(guò)代理服務(wù)器重復(fù)該請(qǐng)求拐邪。
4xx - 客戶端錯(cuò)誤:發(fā)生錯(cuò)誤慰毅,客戶端似乎有問(wèn)題。例如扎阶,客戶端請(qǐng)求不存在的頁(yè)面汹胃,客戶端未提供有效的身份驗(yàn)證信息婶芭。
5xx - 服務(wù)器錯(cuò)誤:服務(wù)器由于遇到錯(cuò)誤而不能完成該請(qǐng)求。
9.在項(xiàng)目中如何用jmeter進(jìn)行接口測(cè)試着饥?
1) 把線程組數(shù)量設(shè)置為1犀农,循環(huán)次數(shù)設(shè)置為1
2) 配置好全局變量URL通過(guò)配置元件---用戶自定義的變量添加
3) 增加配置元件http請(qǐng)求默認(rèn)值,放置在用戶定義的變量之后
4) 添加事務(wù)控制器管理和組織測(cè)試用例
5) 在事務(wù)控制中添加http請(qǐng)求添加測(cè)試用例中的接口請(qǐng)求信息
6) 添加對(duì)應(yīng)的斷言元件進(jìn)行斷言
10宰掉、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斷言
11舞丛、jmeter參數(shù)化的方式有哪幾種可以實(shí)現(xiàn)?
1) 配置元件---用戶定義的變量元件可以設(shè)置全局變量
2) 函數(shù)助手對(duì)話框中可以選擇比如隨機(jī)字符串果漾、隨機(jī)日期球切、隨機(jī)數(shù)字作為參數(shù)化
3) 可以使用csv文件作為參數(shù)化,通過(guò)配置元件中的csv data set config元件進(jìn)行設(shè)置即可
12绒障、做接口測(cè)試工作的意義是什么吨凑?
這個(gè)是開(kāi)放性題目,面試官主要考察對(duì)測(cè)試的理解户辱。
根據(jù)測(cè)試的金字塔模型來(lái)說(shuō)接口測(cè)試是測(cè)試左移的最方便鸵钝,最簡(jiǎn)單的測(cè)試,當(dāng)然牛B的測(cè)試做白盒測(cè)試庐镐,這個(gè)是在接口測(cè)試之前恩商,相當(dāng)于單元測(cè)試。
1.接口測(cè)試屬于集成測(cè)試必逆、測(cè)試介入越早怠堪、就越能在項(xiàng)目早期發(fā)現(xiàn)問(wèn)題,其修復(fù)問(wèn)題的成本越低
2.接口測(cè)試非趁迹快速粟矿、UI自動(dòng)化執(zhí)行一個(gè)測(cè)試用例10S左右、接口測(cè)試用例執(zhí)行的話璧针,需要的時(shí)間是毫秒級(jí)的
3.豐富的工具框架與平臺(tái)嚷炉,相比UI自動(dòng)化來(lái)說(shuō)成本更低。
13.怎么抓包探橱?
1.設(shè)置代理申屹,需要被抓的對(duì)象跟抓包工具處于同個(gè)局域網(wǎng)下
2.安裝證書(shū)绘证,不管是APP或者web都要安裝證書(shū),安裝成功后iOS需要信任哗讥。
備注:https本人研究過(guò)一周嚷那,安卓因?yàn)橄到y(tǒng)限制,暫不能抓取https杆煞。
1.要么開(kāi)發(fā)把證書(shū)寫(xiě)到代碼中 2.要么使用iOS fiddle也可以抓取部分https但不能全部抓取魏宽。
14.怎么判斷一個(gè)問(wèn)題是前端還是后端?
抓包看接口數(shù)據(jù)决乎,如果是數(shù)據(jù)問(wèn)題就是后端队询,不是數(shù)據(jù)問(wèn)題就是前端問(wèn)題
15.接口測(cè)試中需要有那些注意點(diǎn)?
接口中返回的數(shù)據(jù)必用字段要看返回的類型是否跟接口文檔一致构诚,不然會(huì)導(dǎo)致前端出問(wèn)題
接口中返回了圖片地址蚌斩,要手工去進(jìn)行圖片的測(cè)試(大小、內(nèi)容)
接口完成查詢功能的時(shí)候范嘱,數(shù)據(jù)返回的排序顯示
接口測(cè)試的時(shí)候送膳,關(guān)注參數(shù)的默認(rèn)值、必填項(xiàng)
16.TCP的三次握手與四次揮手(經(jīng)典)丑蛤?
備注:(這是我自己的理解叠聋,簡(jiǎn)單通俗易懂,如果要看標(biāo)準(zhǔn)的請(qǐng)百度受裹,那個(gè)太長(zhǎng)了自己背不下來(lái))
三次握手碌补?
第一次:客戶端發(fā)送請(qǐng)求到服務(wù)器,服務(wù)器知道客戶端發(fā)送名斟,自己接收正常脑慧。SYN=1,seq=x
? 第二次:服務(wù)器發(fā)給客戶端,客戶端知道自己發(fā)送砰盐、接收正常闷袒,服務(wù)器接收、發(fā)送正常岩梳。ACK=1,ack=x+1,SYN=1,seq=y
? 第三次:客戶端發(fā)給服務(wù)器:服務(wù)器知道客戶端發(fā)送囊骤,接收正常,自己接收冀值,發(fā)送也正常.seq=x+1,ACK=1,ack=y+1
四次揮手:
第一次:客戶端請(qǐng)求斷開(kāi)FIN,seq=u
? 第二次:服務(wù)器確認(rèn)客戶端的斷開(kāi)請(qǐng)求ACK,ack=u+1,seq=v
? 第三次:服務(wù)器請(qǐng)求斷開(kāi)FIN,seq=w,ACK,ack=u+1
? 第四次:客戶端確認(rèn)服務(wù)器的斷開(kāi)ACK,ack=w+1,seq=u+1
17.為什么三次握手和四次揮手也物?
? 三次握手時(shí),服務(wù)器同時(shí)把ACK和SYN放在一起發(fā)送到了客戶端那里
? 四次揮手時(shí)列疗,當(dāng)收到對(duì)方的 FIN 報(bào)文時(shí)滑蚯,僅僅表示對(duì)方不再發(fā)送數(shù)據(jù)了但是還能接收數(shù)據(jù),己方是否現(xiàn)在關(guān)閉發(fā)送數(shù)據(jù)通道,需要上層應(yīng)用來(lái)決定告材,因此坤次,己方 ACK 和 FIN 一般都會(huì)分開(kāi)發(fā)送。
18.為什么客戶端最后還要等待2MSL斥赋?
? 客戶端需要保證最后一次發(fā)送的ACK報(bào)文到服務(wù)器缰猴,如果服務(wù)器未收到,可以請(qǐng)求客戶端重發(fā)疤剑,這樣客戶端還有時(shí)間再發(fā)滑绒,重啟2MSL計(jì)時(shí)。