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、做好測試計畫的關鍵是什麼?
明確測試目的,增強測試計畫的實用性,保證測試用例的實用性和覆蓋率,完全需求文件和規格指標書等,嚴格界定測試週期,測試輪次,測試覆蓋模組等
測試面試題
測試用例 test case 就是提供給系統乙份檔案,包括 測試環境 操作步驟 測試資料 預期結果等要素 把被測的軟體當成乙個黑盒子,至於盒子的內部結構是什麼不重要,只關心輸入資料與輸出資料 測試軟體基本組成單位的正確性。測試的物件是軟體設計的最小單位 模組。又稱為模組測試 測試階段 編碼後或者編碼...
測試面試題
1.1 測試什麼時候介入,為什麼?在軟體研發的整個過程中,需求分析 設計 編碼 測試 發布維護中,都有可能引入軟體缺陷,修復軟體缺陷的費用隨著時間的推移而增加,盡早測試並發現軟體缺陷修正時所投入的人力物力越少。2.軟體缺陷產生的原因 需求不清晰,導致設計目標偏離客戶的需求,從而引起功能或產品特徵上的...
效能測試面試題
1.什麼是負載 測試?什麼是 效能測試?2.效能測試包含了哪些測試 至少舉出3種 3.簡述效能測試的步驟 4.簡述使用 loadrunner的步驟 5.什麼時候可以開始執行效能測試?6.loadrunner由哪些部件組成?7.你使用loadrunner的哪個部件來錄製指令碼?8.loadrunner...