1. 程式人生 > >介面測試面試題

介面測試面試題

什麼是介面測試? 介面測試是測試系統元件間介面的一種測試。 介面測試的重點是檢查資料的交換,傳遞的正確性,以及介面間邏輯依賴關係。 提交介面測試的重要意義:實現開發期並行測試,減少頁面層測試的深度,縮短整個專案的測試周期。 我們測試的介面屬於哪一類? 伺服器介面(基於HTTP協議的介面) 大多數人常說的介面測試,通常是 B/S架構,由客戶端(瀏覽器)呼叫,或模擬客戶端(瀏覽器)呼叫伺服器提供的請求介面,由伺服器完成處理並返回一個應答的過程。 例如:Webservice介面,http介面,jms介面,hessian介面。 HTTP介面傳遞資料最常用的方式: Get方式是從伺服器上獲取資料;在做資料查詢時,建議用Get方式;如:商品資訊介面、搜尋介面、部落格訪客介面等。 Post方式是向伺服器傳送資料 ;在做資料新增、修改或刪除時,建議用Post方式 ;如:微博圖片上傳圖片介面、登入註冊介面等。 介面請求流程 請見圖 介面請求引數分析:
*請求引數必填項、可選項 *輸入合法、非法引數 *請求引數邊界值 介面響應結果: *對異常請求的處理 *請求頭的處理 *存在業務關聯 *涉及資料庫互動的 *結構 *節點值有效性 *列表結構排序 HTTP介面測試的型別 1.GET請求無引數 2.GET請求有引數 3.POST請求 介面測試用例編寫要點: * 測試每個引數型別不合法的情況(型別不合法容易遺漏NULL型) * 測試每個引數取值範圍不合法的情況 * 測試引數為空的情況 * 測試引數前後臺定義的一致性 * 測試每個引數的上下限(這裡容易出致命的BUG,如果程式處理不當,可能導致崩潰) * 如果兩個請求有嚴格的先後順序,需要測試調轉順序的情況 介面測試的步驟:
1)請求介面 2)獲取返回值 3)斷言:判斷實際結果是否與預期相同 (測試的時候不可以開代理抓包軟體) 介面測試例項講解(PostMan的使用) postman使用 (chrome中安裝jsonview) (chrome中安裝postman) 一個藉口請求需要設定:請求URL,請求方法,請求頭,請求引數 說明:GET請求的引數在URL連結上,所以,GET請求的請求頭與請求引數如在介面文件中無特別宣告時,可以不填。 1.填寫請求、引數 2.Tests中新增斷言 3.Save as儲存 4.建立collection(聚集、集合) 5.左側點選collection-RUN 6.點選start test 右側可以看到執行結果 7.命令列執行集合(先儲存,後安裝newman) 1)GET無引數:
只需驗證狀態碼是否為200 或者返回值中的某個特定欄位的校驗errno: 0 以眾籌產品詳細列表為列 http://api.zhongchou.cn/deal/list?v=1 在chrome中檢視返回的樣例 先在postman中教如何進行介面測試(介面化工具的操作) 再用Python實現程式碼進行介面測試(類和物件的講解,安裝request包) 2)GET有引數: 驗證返回的狀態碼為200 驗證預設值count==20 驗證預設值start==0 驗證書的數量==20 驗證books中包含關鍵字“小王子” 以豆瓣開發者api為例 搜尋圖書: 介面地址:GET http://api.douban.com/v2/book/search 引數 意義 備註 q 查詢關鍵字 q和tag必填其一 tag 查詢的tag q和tag必填其一 start 取結果的offset 預設為0 count 取結果的條數 預設為20,最大為100 指令碼: //驗證返回資料中包含關鍵字 tests["驗證response中包含 小王子"] = responseBody.has("小王子"); //驗證返回的狀態碼是否為200 tests["Status code is 200"] = responseCode.code === 200; //驗證start=0&count=20 //驗證start=0 var jsonData = JSON.parse(responseBody); var b_count = jsonData.count; //定義變數b_count tests["start"] = jsonData.start === 20; //驗證count=20 tests["count"] = jsonData.count === 20; //驗證返回的圖書列表長度為預設值 tests["圖書列表長度為預設值20"] = jsonData.count === 20; tests["圖書列表長度為預設值為b_count"] = jsonData.count === b_count; GET的引數是個字串,POST的引數要封裝到HTTP請求頭裡,是字典 3)POST請求 驗證 以登入為例 http://api.zhongchou.cn/user/login?v=1' 引數: 'identity':'18311338905','password':'a000000' requests包使用說明中文文件: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html http://blog.csdn.net/shanzhizi/article/details/50903748