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請求的四種引數形式是什麼?
multipart/form-data:支援單組和多組檔案上傳
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、介面自動化中的關聯怎麼處理?
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、做好測試計畫的關鍵是什麼?
明確測試目的,增強測試計畫的實用性,保證測試用例的實用性和覆蓋率,完全需求文件和規格指標書等,嚴格界定測試週期,測試輪次,測試覆蓋模組等
python介面自動化 重定向(Location)
一 重定向 1.重定向 redirect 就是通過各種方法將各種網路請求重新定個方向轉到其它位置,從位址a跳轉到位址b了。2.重定向狀態碼 301 redirect 301 代表永久性轉移 permanently moved 302 redirect 302 代表暫時性轉移 temporarily ...
介面自動化面試
1 json和字典的區別?json是一種輕量級的資料互動格式,以key value鍵值對的形式來儲存資料,結構清晰,可以說是目前網際網路專案開發中最常用的一種資料互動格式。字典,同樣是以key value鍵值對的形式來儲存資料,是python中的一種資料型別。2 你做介面自動化測試時,測試資料放在哪...
後端介面重定向 面試分享 測試面試部分介面題目
為什麼要做介面測試 越底層發現bug,修復成本越低 前端發生變化時,後端介面可以不用變 檢查系統的安全性 穩定性,前端傳參不可信 介面測試的重點 檢查介面返回的資料是否與預期的結果一致 檢查介面的容錯性,加入傳遞的型別錯誤時是否可以處理 介面測試的邊界值 介面的效能 介面的安全性 http狀態碼 1...