常見的軟件接口測試面試題及答案


1、get和post區別是什么?

答: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方式

2、cookie和session的區別

(1)cookie數據存放在客戶的瀏覽器上,session數據放在服務器上

(2)cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session

(3)session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,考慮到減輕服務器性能方面應當使用cookie

(4)單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie

(5)可以將登陸信息等重要信息存放為session;其他信息需要保存,可以放在cookie

3、請求接口中常見的返回狀態碼

答:

1xx -- 信息提示(表示臨時的響應。客戶端在收到常規響應之前,准備接收一個或多個1xx響應)

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

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

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

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

常見的有

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

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

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

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

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

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

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

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

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

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

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

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

4、怎么設計接口測試用例

通常,設計接口測試用例需要考慮以下幾個方面:

(1)是否滿足前提條件

有些接口需要滿足前提,才可成功獲取數據。常見的,需要登錄Token

逆向用例:針對是否滿足前置條件(假設為n個條件),設計0~n條用例

(2)是否攜帶默認值參數

正向用例:帶默認值的參數都不填寫、不傳參,必填參數都填寫正確且存在的“常規”值,其他不填寫,設計1條用例

(3)業務規則、功能需求

這里根據時間情況,結合接口參數說明,可能需要設計N條正向用例和逆向用例

(4)參數是否必填

逆向用例:針對每個必填參數,都設計1條參數值為空的逆向用例

(5)參數之間是否存在關聯

有些參數彼此之間存在相互制約的關系

(6)參數數據類型限制

逆向用例:針對每個參數都設計1條參數值類型不符的逆向用例

(7)參數數據類型自身的數據范圍值限制

正向用例:針對所有參數,設計1條每個參數的參數值在數據范圍內為最大值的正向用例

5、如何分析是前段還是后端的問題

(1)檢查接口,前端和后台之間是通過接口文件相互聯系的,需要查看接口文件

(2)檢查請求的數據是什么,反饋的數據又是什么

(3)根據接口文件,檢查數據是否正確。如果發送的數據是正確的,但是后台反饋的數據是不符合需求的,那就是后台的問題;如果前端沒有請求接口或請求的時候發送數據與需求不符,那這個時候就是前端的問題了。

(先抓包看請求報文,對着接口文檔,看請求報文有沒問題,有問題就是前端發的數據不對
請求報文沒問題,那就看返回報文,返回的數據不對,那就是后端開發的問題)

6、在手工接口測試或者自動化接口測試過程中,上下游接口有數據依賴如何處理?

答:在工具中可以使用全局變量等方式將需要的數據進行傳送

7、依賴第三方數據的接口如何進行測試?

答:可以使用SoapUI等工具直接調用第三方數據接口的webservice,通過返回值來查看第三方數據的接口是否調用正常

也可以利用一些MOCK的工具來模擬第三方的數據返回,最大限度的降低對第三方數據接口的依賴

8、接口測試中,依賴登錄狀態的接口如何測試?

答:依賴登錄狀態的接口的本質上是在每次發送請求時需要帶上session或者cookie才能發送成功,在構建POST請求時添加必要的session或者cookie

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM