沉淀!熬夜整理100個接口測試的知識點!!專業(yè)掃盲!

接口測試最近幾年被炒的火熱了,越來越多的測試同行意識到接口測試的重要性。接口測試為什么會如此重要呢? 主要是平常的功能點點點,大家水平都一樣,是個人都能點,面試時候如果問你平常在公司怎么測試的,你除了說點點點,還能說什么呢,無非就是這個項目點完了點那個項目, 這就是為什么各行各業(yè)的只要手指能點得動的人都來轉(zhuǎn)行軟件測試了。面試的時候面試官希望你除了點點點,還能更深入一點的思考頁面上看不到的功能,也就是接口測試了。接口是看不見的,但是可以訪問!

HTTP, HTTPS協(xié)議

  • 什么是DNS

DNS是域名系統(tǒng)(Domain Name System),DNS是用來做域名解析的,它會在你上網(wǎng)輸入網(wǎng)址后,把它轉(zhuǎn)換成IP,然后去訪問對方服務器;沒有它,你想上百度就要記住百度的IP,但有了DNS的處理,你只需要記住對應網(wǎng)站的域名,即網(wǎng)址就可以了。

  • HTTP協(xié)議

HTTP協(xié)議:超文本傳輸協(xié)議,是基于TCP的協(xié)議,默認為80端口。它的作用是用來規(guī)定客戶端和服務器的數(shù)據(jù)傳輸格式。是一種用于請求與響應模式的、無狀態(tài)、無連接 的應用層協(xié)議。 由于HTTP協(xié)議是一種請求-響應模式,所以一般需要關(guān)注HTTP請求和HTTP響應。

  • 怎么抓取HTTPS協(xié)議

使用fiddler工具抓取HTTPS,體操作請查看文末領(lǐng)取教程

  • 說出請求接口中常見的返回狀態(tài)碼

1xx -- 信息提示(表示臨時的響應??蛻舳嗽谑盏匠R?guī)響應之前,準備接收一個或多個1xx響應)

2xx -- 成功(表明服務器成功地接受了客戶端請求)

3xx -- 重定向(客戶端瀏覽器必須采取更多操作來實現(xiàn)請求。例如,瀏覽器可能不得不請求服務器上的不同的頁面,或通過代理服務器重復該請求)

4xx -- 客戶端錯誤(發(fā)送錯誤,客戶端有問題。例如,客戶端請求不存在的頁面,客戶端未提供有效的身份證驗證信息)

5xx -- 服務器錯誤(服務器由于遇到錯誤而不能完成該請求)

常見的返回碼有:

200 OK - [GET]:服務器成功返回用戶請求的數(shù)據(jù)

201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數(shù)據(jù)成功

202 Aceepted - [*]:表示一個請求已經(jīng)進入后臺排隊(異步任務)

204 NO CONTENT - [DELETE]:用戶刪除數(shù)據(jù)成功

400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發(fā)出的請求有錯誤,服務器沒有進行新建或修改數(shù)據(jù)的操作

401 Unauthorized -[*] :表示用戶沒有權(quán)限(令牌、用戶名、密碼錯誤)

403 Forbidden -[*] :表示用戶得到授權(quán)(與401錯誤相對),但是訪問被禁止

404 NOT FOUND -[*]:用戶發(fā)出的請求針對得到是不存在的記錄,服務器沒有進行操作,該操作是冪等的

406 Not Acceptable - [GET]:用戶請求的格式不可得(比如用戶請求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用戶請求的資源被永久刪除,且不會再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 當創(chuàng)建一個對象時,發(fā)生一個驗證錯誤。

500 INTERNAL SERVER ERROR - [*]:服務器發(fā)生錯誤,用戶將無法判斷發(fā)出的請求是否成功。

  • HTTP協(xié)議請求方式

HTTP協(xié)議常用的請求方式有如下幾種:

  • HTTP和HTTPS協(xié)議區(qū)別

安全性 安全性低——明文傳輸、易受攻擊,無法確認雙方身份,也無法確保數(shù)據(jù)的完整性 安全性高——使用ssl加密傳輸協(xié)議,信息是密文,可以認證雙方的身份,防止信息被截取篡改
默認TCP端口 80端口 443端口
靈活度或技術(shù)門檻 簡單快速,使用很靈活 技術(shù)門檻:多數(shù)個人或私人網(wǎng)站難以支撐
速度 協(xié)議簡單,HTTP服務器的程序規(guī)模小,因而通信速度很快 加重服務端的負擔,需要資源來支撐,降低用戶的訪問速度
費用 沒有額外的費用 CA機構(gòu)頒發(fā)的證書都是需要年費的

  • HTTP和HTTPS實現(xiàn)機有什么不同

HTTP協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的,也就是明文的,因此使用HTTP協(xié)議傳輸隱私信息非常不安全,為了保證這些隱私數(shù)據(jù)能加密傳輸,于是網(wǎng)景公司設計了SSL(Secure Sockets Layer)協(xié)議用于對HTTP協(xié)議傳輸?shù)臄?shù)據(jù)進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,要比http協(xié)議安全。

  • HTTPS和HTTP的區(qū)別主要如下:

1、https協(xié)議需要到ca申請證書,一般免費證書較少,因而需要一定費用。

2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。

3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。

4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進行加密傳輸、身份認證的網(wǎng)絡協(xié)議,比http協(xié)議安全。

  • POST和GET的區(qū)別

POST和GET都是向服務器提交數(shù)據(jù),并且都會從服務器獲取數(shù)據(jù)。

區(qū)別:

(1)傳送方式:get通過地址欄傳輸,post通過報文傳輸

(2)傳送長度:get參數(shù)有長度限制(受限于url長度),而post無限制

(3)GET產(chǎn)生一個TCP數(shù)據(jù)包(對于GET方式的請求,瀏覽器會把http header和data一并發(fā)送出去,服務器響應200返回數(shù)據(jù)),POST產(chǎn)生兩個TCP數(shù)據(jù)包(對于POST,瀏覽器先發(fā)送header,服務器響應100 continue,瀏覽器再發(fā)送data,服務器響應200 ok返回數(shù)據(jù))

(4)get請求參數(shù)會被完整保留在瀏覽歷史記錄里,而post中的參數(shù)不會被保留

(5)在做數(shù)據(jù)查詢時,建議用GET方式;而在做數(shù)據(jù)添加、修改或刪除時,建議用post方式

  • HTTP請求報文與響應報文格式

請求報文:一個HTTP請求報文由請求行(Request Line)、請求頭(Header)、空行(Blank Line)和請求體(Body)4個部分組成。

響應報文:HTTP響應報文和請求報文的結(jié)構(gòu)差不多,由狀態(tài)行、響應頭、空行、響應體4個部分組成。

  • 什么是HTTP協(xié)議無狀態(tài)協(xié)議?怎么解決HTTP協(xié)議無狀態(tài)協(xié)議

是指協(xié)議對于事務處理沒有記憶能力,服務器不知道客戶端是什么狀態(tài)。即我們給服務器發(fā)送 HTTP 請求之后,服務器根據(jù)請求,會給我們發(fā)送數(shù)據(jù)過來,但是,發(fā)送完,不會記錄任何信息。

解決方案:通過cookie和session來保持狀態(tài)。

  • 常見的POST提交數(shù)據(jù)方式

請求body;請求url+請求body:

Content-type:

application/x-www-form-urlencoded: 表單提交--鍵值對, form

multipart/form-data:文件上傳---文件 ,MIME

application/json,text/xml

  • HTTP協(xié)議學了哪幾個版本

http協(xié)議目前有4個版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互聯(lián)網(wǎng)上被廣泛使用,2.0版本目前應用很少,是下一代的http協(xié)議。

  • Cookies和Session區(qū)別

1.存儲位置不同:Cookie 是將用戶數(shù)據(jù)通過加密的方式保存在客戶端,大多數(shù)情況 Cookie 存儲在瀏覽器;Session 是用于控制客戶端和服務端的連接,Session 存儲在服務器;

2.存儲容量不同:單個 Cookie 保存的數(shù)據(jù)不得超過 4kb,一個站點最多 20 個 Cookie,Session 一般情況下沒有上限,不過建議不要存放太多東西,否則影響性能;

3.存取方式不同:Cookie 只能用 ASCII 字符串,通過編碼方式獲取 Unicode 字符或者二進制數(shù)據(jù),不好存儲復雜的信息,而 Session 能存儲任何類型的數(shù)據(jù);

4.隱私策略/安全性不同:Cookie 放在客戶端,可以進行 Cookie 欺騙,所以不安全,Session 放在服務端,更加安全;

5.有效期不同:Cookie 可以設置屬性達到長期有效,Session 依賴于 JSESSIONID 的 Cookie,Cookie JSESSIONID 的過期時間默認為-1,只需要關(guān)閉窗口 Session 就會失效,就算不依賴 Cookie,用 UrL 重寫也不能完成,如果 Session 超時時間過長,容易導致內(nèi)存溢出;

6.服務器壓力不同:Cookie 保存在本地,不存在服務端壓力,Session 保存在服務端,每個用戶產(chǎn)生一個 Session,當訪問增多,會比較占用服務器的性能,如果主要考慮到減輕服務器性能方面,應當使用 Cookie;

7.瀏覽器支持不同:如果瀏覽器禁用 Cookie,那么 Cookie 直接失效,Session 比較好點,可以用 URL 重寫;

8.Cookie 和 Session 應用的場景:Cookie 一般用于記住用戶的登錄狀態(tài),如記錄用戶的習慣,購物車;而 Session 用于登錄驗證。

  • HTTPS在哪一層, 會話層在第幾層

https在應用層。

會話層為7層協(xié)議的第五層,為表示層提供建立、維護和結(jié)束會話連接的功能,并提供會話管理服務。

  • 瀏覽器輸入url按回車背后經(jīng)歷了哪些?

在瀏覽器中輸入URL并回車后,主要發(fā)生以下步驟:

解析URL,獲取要訪問的域名

DNS域名解析,根據(jù)訪問的域名獲得目標服務器的IP地址

瀏覽器與服務端三次握手建立TCP連接

連接建立成功之后就可以發(fā)送HTTP請求報文以及服務器返回HTTP響應報文

斷開TCP鏈接

瀏覽器解析響應報文,渲染頁面

TCP, UDP協(xié)議

  • TCP/UDP協(xié)議的區(qū)別,TCP如何保證正確,微信基于什么協(xié)議,QQ基于什么協(xié)議,為什么?

  • 你熟悉OSI協(xié)議嗎?原理是什么

接口用例設計

  • 怎么設計接口測試用例?

  • HTTPS測試點

  • 從HTTP變化到HTTPS協(xié)議,測試點

  • 購物車模塊, 加入購物車接口測試點分析

  • http://...?orderId=,**, 接口設計用例

  • 設計接口測試用例時,涉及的是電商系統(tǒng),其中包括很多修改,如商品.商家、店鋪等等,針對這些數(shù)據(jù)的修改,會涉及到很多參數(shù)。如商品的名稱,商品的尺碼,商品的顔色等等。那在設計實現(xiàn)"修改"接口時,如何確定要傳什么參數(shù)?是只需要傳我要修改的參數(shù),還是全部參數(shù)都要傳?

  • 上傳文件測試點

  • 根據(jù)以下界面設計測試用例

  • 一個訂單的幾種狀態(tài)如何全部測到,如:未處理,處理中,處理失敗,處理成功

接口測試

  • 為什么要做接口測試

  • 你平常做接口測試的過程中發(fā)現(xiàn)過哪些BUG

  • 平常你是怎么測試接口的

  • 平常用什么工具測接口的

  • 沒有接口文檔,如果做接口測試

  • 接口測試的流程

  • 常用什么接口測試工具, 說一個你在工作中具體怎么做接口測試的實例

  • 不可逆的操作,如何處理,比如刪除一個訂單這種接口如何測試

  • 接口產(chǎn)生的垃圾數(shù)據(jù)如何清理

  • 測試的數(shù)據(jù)你放在哪

  • 你們數(shù)字簽名怎么實現(xiàn)的

  • 當一個接口出現(xiàn)異常時候,你是如何分析異常的

  • 你們怎么做的參數(shù)化

  • 如何進行數(shù)據(jù)清洗

  • 如何進行數(shù)據(jù)檢驗

  • response怎么驗證, 參數(shù)特別多

  • 做接口測試如何分析是前端還是后端的問題

  • 在測試接口中怎么知道請求成功還是失敗

  • 如何模擬弱網(wǎng)測試

  • 異步接口怎么測試

  • 接口的加密測試中對稱加密與非對稱加密有什么區(qū)別?如何開展測試?請詳解

  • 請詳細闡述接口測試和UI測試在測試活動中是如何協(xié)同測試的?

  • 目前接口文檔是由word格式管理,因迭代快,產(chǎn)生很多文襠,分不清哪些是不用的接口,哪些是正在用的接口,哪些是更新后的接口, 文襠雜亂.另外因是 word格式管理,不方便詢問,如何管理?每次查看接口文檔需要下載多個word,不能避免下載操作查看,效率不高,如何提高工作效率?

接口依賴

  • 很多接口都需要登錄怎么處理?

  • 依賴于登錄的接口如何處理 -token 和 session的管理

  • 在手工接口測試或自動化接口測試的過程中,上下游接口有數(shù)據(jù)依賴如何處理?

  • 依賴于第三方數(shù)據(jù)的接口如何進行測試

  • 接口測試中依賴登錄狀態(tài)的接口如何測試

  • 如果兩個請求有嚴格的先后順序,需要測試調(diào)轉(zhuǎn)順序的情況

  • 下個接口請求參數(shù)依賴上個接口的返回數(shù)據(jù)

Web Service

  • HTTP接口測試和Web Service接口測試區(qū)別是什么?

  • Web Service接口是如何測試的

接口框架

  • 接口測試框架怎么搭建的?

  • 你有沒有做過框架穩(wěn)定性優(yōu)化相關(guān)的工作?

  • 持續(xù)集成怎么做的?

Mock

  • Mock怎么使用

  • 你們Mock是怎么做的

RPC

  • rpc接口怎么測試

  • 什么是RPC接口,用Http設計一個RPC接口

  • 你有沒有自己實現(xiàn)過rpc框架

性能

  • JMeter怎么存儲變量, 讓下一個接口使用

  • 如何進行接口壓測

  • JMeter執(zhí)行10次

  • JMeter獲取上一個request的結(jié)果

  • JMeter完成一個用例

  • 做接口測試當請求參數(shù)多時tps下降明顯,此接口根據(jù)參數(shù)從redis中獲取數(shù)據(jù),每個參數(shù)與redfs交互一次,當一組參數(shù)是tps5133,五組參數(shù)是tps1l69,多次交互影響了處理性能,請詳細描述如何改進增進效果的方案

高能部分

  • TCP報頭格式

  • UDP報頭格式

  • TCP/UDP區(qū)別(不僅是宏觀上的,最好能根據(jù)各自的機制講解清楚)

  • HTTP狀態(tài)碼(最好結(jié)合使用場景,比如在緩存命中時使用哪個)

  • HTTP協(xié)議(一些報頭字段的作用,如cace-control、keep-alive)

  • OSI協(xié)議、TCP/IP協(xié)議以及每層對應的協(xié)議

  • Session機制、Cookie機制

  • TCP三次握手、四次揮手(這個問題真的要回答吐了,不過真的是面試官最喜歡問的,建議每天手擼一遍,而且不只是每次請求的過程,各種FIN_WAIT、TIME_WAIT狀態(tài)也要掌握)。

  • 打開網(wǎng)頁到頁面顯示之間的過程(涵蓋了各個方面,DNS解析過程,Nginx請求轉(zhuǎn)發(fā)、連接建立和保持過程、瀏覽器內(nèi)容渲染過程,考慮的越詳細越好)。

  • http和https區(qū)別,https在請求時額外的過程,https是如何保證數(shù)據(jù)安全的

  • IP地址子網(wǎng)劃分

  • POST和GET區(qū)別

  • DNS解析過程

  • TCP如何保證數(shù)據(jù)的可靠傳輸?shù)模ㄟ@個問題可以引申出很多子問題,擁塞控制慢開始、擁塞避免、快重傳、滑動窗口協(xié)議、停止等待協(xié)議、超時重傳機制,最好都能掌握)

  • 地址解析協(xié)議ARP

  • 交換機和路由器的區(qū)別

  • HTTP2.0、thrift

  • API接口與SDI接口的區(qū)別(API是提供給別人的接口)

  • dubbo如何一條鏈接并發(fā)多個調(diào)用。Dubbo的原理,序列化相關(guān)問題

  • 你怎么理解http協(xié)議

  • 說說http協(xié)議的工作流程

  • http有哪些請求提交方式

  • http中的200,302,403,404,500,503都代表什么狀態(tài)

  • 什么是web緩存?有什么優(yōu)點

  • 你怎么理解cookie和session,有哪些不同點

  • 什么是https,說說https的工作原理

  • 什么是http代理服務器,有什么用

  • 什么是分布式系統(tǒng)

  • 分布式系統(tǒng)你會考慮哪些方面

  • 講講CAP理念

  • 怎么理解強一致性、單調(diào)一致性和最終一致性

  • 分布式系統(tǒng)設計你會考慮哪些策略

  • 講一講TCP協(xié)議的三次握手和四次揮手流程

  • 講一講TCP協(xié)議的三次握手和四次揮手流程

  • 為什么TCP建立連接協(xié)議是三次握手,而關(guān)閉連接卻是四次握手呢?為什么不能用兩次握手進行連接

  • 為什么TCP TIME_WAIT狀態(tài)還需要等2MSL后才能返回到CLOSED狀態(tài)

  • 什么是DoS、DDoS、DRDoS攻擊?如何防御

  • 為什么說TCP/IP協(xié)議是不可靠的

  • OSI有哪七層模型?TCP/IP是哪四層模型

關(guān)于這些知識點的掌握肯定是需要自己多花時間和精力的
建議大家看教程沒有過多廢話,書籍太枯燥主要還是接口自動化使用技巧實踐
重要,作者的裙里有大佬的講解非常詳細,能夠幫助你快速理解與掌握?;貧w主頁查看進裙方式~
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容