接口自動化面試


1、get和post的區別?

l http是上層請求協議,主要定義了服務端和客戶端的交互規格,底層都是tcp/ip協議

l Get會把參數附在url之后,用?分割,&連接不同參數,Get獲取資源,post會把參數放置在http請求體中,Post發送請求數據

l Get產生一個tcp數據包,post產生兩個tcp數據包

l Get請求,瀏覽器會把http header和data一起發送,服務器返回200響應碼

l Psot請求,瀏覽器先發送header,服務器響應100(continue),然后再發送data,服務器返回200響應碼

l Post的安全性比get高,如果瀏覽器緩存了,會把get參數留在緩存中,用戶可以看到參數信息

 

2、post請求的四種參數形式是什么?

Application/x-www-form-urlencoded:將參數以一組鍵對值的方式發送

Multipart/form-data:支持單組和多組文件上傳

Application/json:根據后端接口的定義支持數據類型

Text/xml

 

3、http狀態碼302, 403, 503分別代表什么?

302:臨時重定向到某一個頁面,比如要登錄之后才能進入的頁面,他首先會臨時重定向到登錄界面

403:權限不夠  服務器理解客服端的請求,但拒絕此請求

503:服務端目前無法使用,過載或者維護中

500:服務端異常

404:請求失敗,請求所希望得到的資源未被在服務器上發現

401:請求身份驗證

1XX系列:指定客戶端應相應的某些動作,代表請求已被接受,需要繼續處理

2XX系列:代表請求已成功被服務器接收、理解、並接受。這系列中最常見的有200、201狀態碼。

3XX系列:代表需要客戶端采取進一步的操作才能完成請求,這些狀態碼用來重定向,后續的請求地址(重定向目標)在本次響應的 Location 域中指明。這系列中最常見的有301、302狀態碼。

4XX系列:表示請求錯誤。代表了客戶端看起來可能發生了錯誤,妨礙了服務器的處理。常見有:401、404狀態碼。

5xx系列:代表了服務器在處理請求的過程中有錯誤或者異常狀態發生,也有可能是服務器意識到以當前的軟硬件資源無法完成對請求的處理。常見有500、503狀態碼。

 

4、公司有用到第三方服務,出了問題,打電話給第三方,第三方不承認,這時候日志又顯示不到錯誤,應該怎么處理?

1/ 單獨調用第三方服務,查看三方接口返回的status,code,msg,看是否能支持正常服務

2/ 在自己的應用中mock第三方服務,來調用自己的接口,看能否正常工作,將結果反饋給第三方

3/  配置日志級別在debug級別時,添加第三方請求過程的日志,查看入參,響應來追蹤問題

 

5、接口自動化中的關聯怎么處理?

把上一個請求返回的結果傳入到下一個請求的參數中,將請求的結果反射到一個類屬性(使用setattr()函數),下一個請求去調用這個類屬性

 

6、自動化測試怎么校驗結果?

斷言 ,預期結果與實際結果對比

數據庫校驗,根據測試場景來查詢數據庫里的數據和請求之前的數據進行比對

 

7、自動化使用的測試框架是什么?簡述自動化框架的設計、維護

1/測試框架:python+unittest+requests+ddt+openpyxl+pymysql+logging

測試框架:

python:入門簡單,語法簡潔

unittest :定義一個測試用例類,具體的方法來維護測試用例的生命周期,測試場景行為,測試用例  前置場景,行為,期望結果,實際結果,斷言方法,Setup teardown方法

requests:接口調用 ,支持http請求的庫,API 簡潔,提供不同的http請求方法,支持session,cookies,

 ddt :數據驅動,ddt 類裝飾器,data 測試方法裝飾器  unpack解包可迭代的數據類型

普通用戶,數據庫,配置文件---(基礎數據)

openpyxl:  數據管理 excel管理數據,使用openpyxl模塊來進行excel數據的讀和寫excle,csv,  json,  yaml,  txt都可以管理測試數據)

 pymysql:數據庫交互,數據校驗

 eval,json:數據格式的轉換   Eval將python支持的格式轉換成對應的格式

 

logging:日志處理, 統一日志輸出格式,渠道,級別,執行結果的記錄,便於定位問題

 jenkins:持續集成

 

2/框架設計思路:數據驅動+結構分層(可讀性,可維護性,可擴展性)

數據驅動:將維護數據與代碼分離,接口調用行為一致,針對不同的參數組合驅動不同的測試場景,減少代碼冗余

結構分層:數據層+用例層+邏輯層

數據層:測試數據的支撐 data.xls

用例層:用例的執行 test_register.py  test_recharge.py

邏輯層:公用的方法的封裝與提取 doexcle.py do_mysql.py http_requests.py logger.py等模塊

3/框架設計步驟:

准備測試數據: EXCEL表准備測試用例---excel數據的讀取---參數值的替換

發起請求:請求方法(get/post方法進行封裝---URL的拼接(不同---參數轉化為字典

拿到請求的返回值:解析返回值code,status,msg信息

斷言

  好處:

1、自動化測試用例和手工測試用例的完美結合,減少重復工作

2、配置靈活,可以自主切換測試環境,執行測試用例

3、常用功能進行封裝,邏輯清晰,易於維護

4、統一執行入口,管理測試用例集:

run.py模塊通過模糊查找來選擇需要執行的測試用例

5、持續集成,定時構建,快速反饋

 

8、具體的在這個項目中自動化怎么應用到實際的,您對自動化結果的分析

完成所有的自動化測試框架的設計和實現后,進行接口測試,然后集成到jenkins,配置定時執行,生成html報表,查看測試通過率,查看接口的功能

每次發版時,進行回歸測試,新功能開發未提測前

 

9、做好測試計划的關鍵是什么?

明確測試目的,增強測試計划的實用性,保證測試用例的實用性和覆蓋率,完全需求文檔和規格指標書等,嚴格界定測試周期,測試輪次,測試覆蓋模塊等

 

 

20200617天喻軟件初面:

1.post,get請求的區別

2.接口測試用例的重點

3.接口之間的關聯怎么做

4.cookies怎么存儲

5.並發時,cookies,token如何處理

6.三方接口故障時,如何處理

7.如何開展的接口自動化,框架是自己搭建的嗎?

 

 

 


免責聲明!

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



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