接口測試最近幾年被炒的火熱了,越來越多的測試同行意識到接口測試的重要性。接口測試為什么會如此重要呢? 主要是平常的功能點點點,大家水平都一樣,是個人都能點,面試時候如果問你平常在公司怎么測試的,你除了說點點點,還能說什么呢,無非就是這個項目點完了點那個項目, 這就是為什么各行各業的只要手指能點得動的人都來轉行軟件測試了。面試的時候面試官希望你除了點點點,還能更深入一點的思考頁面上看不到的功能,也就是接口測試了。接口是看不見的,但是可以訪問!
HTTP, HTTPS協議
-
什么是DNS
DNS是域名系統(Domain Name System),DNS是用來做域名解析的,它會在你上網輸入網址后,把它轉換成IP,然后去訪問對方服務器;沒有它,你想上百度就要記住百度的IP,但有了DNS的處理,你只需要記住對應網站的域名,即網址就可以了。
-
HTTP協議
HTTP協議:超文本傳輸協議,是基於TCP的協議,默認為80端口。它的作用是用來規定客戶端和服務器的數據傳輸格式。是一種用於請求與響應模式的、無狀態、無連接 的應用層協議。 由於HTTP協議是一種請求-響應模式,所以一般需要關注HTTP請求和HTTP響應。
-
怎么抓取HTTPS協議
使用fiddler工具抓取HTTPS,具體操作請查看文末領取教程
-
說出請求接口中常見的返回狀態碼
1xx -- 信息提示(表示臨時的響應。客戶端在收到常規響應之前,准備接收一個或多個1xx響應)
2xx -- 成功(表明服務器成功地接受了客戶端請求)
3xx -- 重定向(客戶端瀏覽器必須采取更多操作來實現請求。例如,瀏覽器可能不得不請求服務器上的不同的頁面,或通過代理服務器重復該請求)
4xx -- 客戶端錯誤(發送錯誤,客戶端有問題。例如,客戶端請求不存在的頁面,客戶端未提供有效的身份證驗證信息)
5xx -- 服務器錯誤(服務器由於遇到錯誤而不能完成該請求)
常見的返回碼有:
200 OK - [GET]:服務器成功返回用戶請求的數據
201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數據成功
202 Aceepted - [*]:表示一個請求已經進入后台排隊(異步任務)
204 NO CONTENT - [DELETE]:用戶刪除數據成功
400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發出的請求有錯誤,服務器沒有進行新建或修改數據的操作
401 Unauthorized -[*] :表示用戶沒有權限(令牌、用戶名、密碼錯誤)
403 Forbidden -[*] :表示用戶得到授權(與401錯誤相對),但是訪問被禁止
404 NOT FOUND -[*]:用戶發出的請求針對得到是不存在的記錄,服務器沒有進行操作,該操作是冪等的
406 Not Acceptable - [GET]:用戶請求的格式不可得(比如用戶請求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用戶請求的資源被永久刪除,且不會再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 當創建一個對象時,發生一個驗證錯誤。
500 INTERNAL SERVER ERROR - [*]:服務器發生錯誤,用戶將無法判斷發出的請求是否成功。
-
HTTP協議請求方式
HTTP協議常用的請求方式有如下幾種:

-
HTTP和HTTPS協議區別
安全性 安全性低——明文傳輸、易受攻擊,無法確認雙方身份,也無法確保數據的完整性 安全性高——使用ssl加密傳輸協議,信息是密文,可以認證雙方的身份,防止信息被截取篡改默認TCP端口 80端口 443端口靈活度或技術門檻 簡單快速,使用很靈活 技術門檻:多數個人或私人網站難以支撐速度 協議簡單,HTTP服務器的程序規模小,因而通信速度很快 加重服務端的負擔,需要資源來支撐,降低用戶的訪問速度費用 沒有額外的費用 CA機構頒發的證書都是需要年費的
-
HTTP和HTTPS實現機有什么不同
HTTP協議傳輸的數據都是未加密的,也就是明文的,因此使用HTTP協議傳輸隱私信息非常不安全,為了保證這些隱私數據能加密傳輸,於是網景公司設計了SSL(Secure Sockets Layer)協議用於對HTTP協議傳輸的數據進行加密,從而就誕生了HTTPS。簡單來說,HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。
- HTTPS和HTTP的區別主要如下:
1、https協議需要到ca申請證書,一般免費證書較少,因而需要一定費用。
2、http是超文本傳輸協議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全。
-
POST和GET的區別
POST和GET都是向服務器提交數據,並且都會從服務器獲取數據。
區別:
(1)傳送方式:get通過地址欄傳輸,post通過報文傳輸
(2)傳送長度:get參數有長度限制(受限於url長度),而post無限制
(3)GET產生一個TCP數據包(對於GET方式的請求,瀏覽器會把http header和data一並發送出去,服務器響應200返回數據),POST產生兩個TCP數據包(對於POST,瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok返回數據)
(4)get請求參數會被完整保留在瀏覽歷史記錄里,而post中的參數不會被保留
(5)在做數據查詢時,建議用GET方式;而在做數據添加、修改或刪除時,建議用post方式
-
HTTP請求報文與響應報文格式
請求報文:一個HTTP請求報文由請求行(Request Line)、請求頭(Header)、空行(Blank Line)和請求體(Body)4個部分組成。
響應報文:HTTP響應報文和請求報文的結構差不多,由狀態行、響應頭、空行、響應體4個部分組成。

-
什么是HTTP協議無狀態協議?怎么解決HTTP協議無狀態協議
是指協議對於事務處理沒有記憶能力,服務器不知道客戶端是什么狀態。即我們給服務器發送 HTTP 請求之后,服務器根據請求,會給我們發送數據過來,但是,發送完,不會記錄任何信息。
解決方案:通過cookie和session來保持狀態。
-
常見的POST提交數據方式
請求body;請求url+請求body:
Content-type:
application/x-www-form-urlencoded: 表單提交--鍵值對, form
multipart/form-data:文件上傳---文件 ,MIME
application/json,text/xml
-
HTTP協議學了哪幾個版本
http協議目前有4個版本(0.9,1.0,1.1,2.0),其中1.0、1.1版本在互聯網上被廣泛使用,2.0版本目前應用很少,是下一代的http協議。
-
Cookies和Session區別
1.存儲位置不同:Cookie 是將用戶數據通過加密的方式保存在客戶端,大多數情況 Cookie 存儲在瀏覽器;Session 是用於控制客戶端和服務端的連接,Session 存儲在服務器;
2.存儲容量不同:單個 Cookie 保存的數據不得超過 4kb,一個站點最多 20 個 Cookie,Session 一般情況下沒有上限,不過建議不要存放太多東西,否則影響性能;
3.存取方式不同:Cookie 只能用 ASCII 字符串,通過編碼方式獲取 Unicode 字符或者二進制數據,不好存儲復雜的信息,而 Session 能存儲任何類型的數據;
4.隱私策略/安全性不同:Cookie 放在客戶端,可以進行 Cookie 欺騙,所以不安全,Session 放在服務端,更加安全;
5.有效期不同:Cookie 可以設置屬性達到長期有效,Session 依賴於 JSESSIONID 的 Cookie,Cookie JSESSIONID 的過期時間默認為-1,只需要關閉窗口 Session 就會失效,就算不依賴 Cookie,用 UrL 重寫也不能完成,如果 Session 超時時間過長,容易導致內存溢出;
6.服務器壓力不同:Cookie 保存在本地,不存在服務端壓力,Session 保存在服務端,每個用戶產生一個 Session,當訪問增多,會比較占用服務器的性能,如果主要考慮到減輕服務器性能方面,應當使用 Cookie;
7.瀏覽器支持不同:如果瀏覽器禁用 Cookie,那么 Cookie 直接失效,Session 比較好點,可以用 URL 重寫;
8.Cookie 和 Session 應用的場景:Cookie 一般用於記住用戶的登錄狀態,如記錄用戶的習慣,購物車;而 Session 用於登錄驗證。
-
HTTPS在哪一層, 會話層在第幾層
https在應用層。
會話層為7層協議的第五層,為表示層提供建立、維護和結束會話連接的功能,並提供會話管理服務。
-
瀏覽器輸入url按回車背后經歷了哪些?
在瀏覽器中輸入URL並回車后,主要發生以下步驟:
解析URL,獲取要訪問的域名
DNS域名解析,根據訪問的域名獲得目標服務器的IP地址
瀏覽器與服務端三次握手建立TCP連接
連接建立成功之后就可以發送HTTP請求報文以及服務器返回HTTP響應報文
斷開TCP鏈接
瀏覽器解析響應報文,渲染頁面
TCP, UDP協議
-
TCP/UDP協議的區別,TCP如何保證正確,微信基於什么協議,QQ基於什么協議,為什么?
-
你熟悉OSI協議嗎?原理是什么
接口用例設計
-
怎么設計接口測試用例?
-
HTTPS測試點
-
從HTTP變化到HTTPS協議,測試點
-
購物車模塊, 加入購物車接口測試點分析
-
http://...?orderId=,**, 接口設計用例
-
設計接口測試用例時,涉及的是電商系統,其中包括很多修改,如商品.商家、店鋪等等,針對這些數據的修改,會涉及到很多參數。如商品的名稱,商品的尺碼,商品的顔色等等。那在設計實現"修改"接口時,如何確定要傳什么參數?是只需要傳我要修改的參數,還是全部參數都要傳?
-
上傳文件測試點
-
根據以下界面設計測試用例

-
一個訂單的幾種狀態如何全部測到,如:未處理,處理中,處理失敗,處理成功
接口測試
-
為什么要做接口測試
-
你平常做接口測試的過程中發現過哪些BUG
-
平常你是怎么測試接口的
-
平常用什么工具測接口的
-
沒有接口文檔,如果做接口測試
-
接口測試的流程
-
常用什么接口測試工具, 說一個你在工作中具體怎么做接口測試的實例
-
不可逆的操作,如何處理,比如刪除一個訂單這種接口如何測試
-
接口產生的垃圾數據如何清理
-
測試的數據你放在哪
-
你們數字簽名怎么實現的
-
當一個接口出現異常時候,你是如何分析異常的
-
你們怎么做的參數化
-
如何進行數據清洗
-
如何進行數據檢驗
-
response怎么驗證, 參數特別多
-
做接口測試如何分析是前端還是后端的問題
-
在測試接口中怎么知道請求成功還是失敗
-
如何模擬弱網測試
-
異步接口怎么測試
-
接口的加密測試中對稱加密與非對稱加密有什么區別?如何開展測試?請詳解
-
請詳細闡述接口測試和UI測試在測試活動中是如何協同測試的?
-
目前接口文檔是由word格式管理,因迭代快,產生很多文襠,分不清哪些是不用的接口,哪些是正在用的接口,哪些是更新后的接口, 文襠雜亂.另外因是 word格式管理,不方便詢問,如何管理?每次查看接口文檔需要下載多個word,不能避免下載操作查看,效率不高,如何提高工作效率?
接口依賴
-
很多接口都需要登錄怎么處理?
-
依賴於登錄的接口如何處理 -token 和 session的管理
-
在手工接口測試或自動化接口測試的過程中,上下游接口有數據依賴如何處理?
-
依賴於第三方數據的接口如何進行測試
-
接口測試中依賴登錄狀態的接口如何測試
-
如果兩個請求有嚴格的先后順序,需要測試調轉順序的情況
-
下個接口請求參數依賴上個接口的返回數據
Web Service
-
HTTP接口測試和Web Service接口測試區別是什么?
-
Web Service接口是如何測試的
接口框架
-
接口測試框架怎么搭建的?
-
你有沒有做過框架穩定性優化相關的工作?
-
持續集成怎么做的?
Mock
-
Mock怎么使用
-
你們Mock是怎么做的
RPC
-
rpc接口怎么測試
-
什么是RPC接口,用Http設計一個RPC接口
-
你有沒有自己實現過rpc框架
性能
-
JMeter怎么存儲變量, 讓下一個接口使用
-
如何進行接口壓測
-
JMeter執行10次
-
JMeter獲取上一個request的結果
-
JMeter完成一個用例
-
做接口測試當請求參數多時tps下降明顯,此接口根據參數從redis中獲取數據,每個參數與redfs交互一次,當一組參數是tps5133,五組參數是tps1l69,多次交互影響了處理性能,請詳細描述如何改進增進效果的方案
高能部分
-
TCP報頭格式
-
UDP報頭格式
-
TCP/UDP區別(不僅是宏觀上的,最好能根據各自的機制講解清楚)
-
HTTP狀態碼(最好結合使用場景,比如在緩存命中時使用哪個)
-
HTTP協議(一些報頭字段的作用,如cace-control、keep-alive)
-
OSI協議、TCP/IP協議以及每層對應的協議
-
Session機制、Cookie機制
-
TCP三次握手、四次揮手(這個問題真的要回答吐了,不過真的是面試官最喜歡問的,建議每天手擼一遍,而且不只是每次請求的過程,各種FIN_WAIT、TIME_WAIT狀態也要掌握)。
-
打開網頁到頁面顯示之間的過程(涵蓋了各個方面,DNS解析過程,Nginx請求轉發、連接建立和保持過程、瀏覽器內容渲染過程,考慮的越詳細越好)。
-
http和https區別,https在請求時額外的過程,https是如何保證數據安全的
-
IP地址子網划分
-
POST和GET區別
-
DNS解析過程
-
TCP如何保證數據的可靠傳輸的(這個問題可以引申出很多子問題,擁塞控制慢開始、擁塞避免、快重傳、滑動窗口協議、停止等待協議、超時重傳機制,最好都能掌握)
-
地址解析協議ARP
-
交換機和路由器的區別
-
HTTP2.0、thrift
-
API接口與SDI接口的區別(API是提供給別人的接口)
-
dubbo如何一條鏈接並發多個調用。Dubbo的原理,序列化相關問題
-
你怎么理解http協議
-
說說http協議的工作流程
-
http有哪些請求提交方式
-
http中的200,302,403,404,500,503都代表什么狀態
-
什么是web緩存?有什么優點
-
你怎么理解cookie和session,有哪些不同點
-
什么是https,說說https的工作原理
-
什么是http代理服務器,有什么用
-
什么是分布式系統
-
分布式系統你會考慮哪些方面
-
講講CAP理念
-
怎么理解強一致性、單調一致性和最終一致性
-
分布式系統設計你會考慮哪些策略
-
講一講TCP協議的三次握手和四次揮手流程
-
講一講TCP協議的三次握手和四次揮手流程
-
為什么TCP建立連接協議是三次握手,而關閉連接卻是四次握手呢?為什么不能用兩次握手進行連接
-
為什么TCP TIME_WAIT狀態還需要等2MSL后才能返回到CLOSED狀態
-
什么是DoS、DDoS、DRDoS攻擊?如何防御
-
為什么說TCP/IP協議是不可靠的
-
OSI有哪七層模型?TCP/IP是哪四層模型
軟件測試資源分享

關於這些知識點的掌握肯定是需要自己多花時間和精力的,這些學習資料和學習教程你可以去咱們交流qun直接獲取,還很多錄制的視頻教程,大佬的講解非常詳細,能夠幫助你快速理解與掌握。上拉到公告處查看進qun方式~