天天看點

接口測試(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

繼續閱讀