接口測試介紹
阿新 • • 發佈:2018-03-15
公司 編輯 pan 鍵值對 做了 狀態碼 例子 傳輸 get請求
接口的概念&特點:
- 接口的概念:軟件由許多模塊構成,軟件的功能往往不是某個單獨的模塊來實現的,而是由模塊跟模塊之間協作共同實現某個功能,這種模塊間的的交互就是通過接口來實現的,我們可以理解為接口就是自己提供給外界的一種抽象物,或者說是一種溝通的協議。
- 接口測試的本質:其實所謂的接口測試本質就是功能測試,只不過我們采用測試接口的方式來測試功能。我們對接口的操作最終會發送到數據庫,也就是對數據庫進行一些列增、刪、改、查的操作。
- 接口測試的優勢: 接口測試的優勢在於,當一個頁面還未開發完成的時候,測試可以提前介入,測試軟件的功能。接口測試可以發現一些頁面操作發現不了的問題,測試介入的越早,解決bug的成本越低。
- 依據開放性劃分
- 外部接口:也就是所謂的openapi,是軟件對用戶可見的接口(包括對應發布的接口文檔),用戶可以通過工具調取相應接口實現需要的功能。測試人員一般都是測試openapi 。
- 內部接口:內部模塊間的接口,用戶不可見,公司內部人員可見的接口。
- 依據類型劃分
- webService(SOAP)接口:走soap協議,通過http傳輸,請求的報文和返回的報文都是xml格式的,需要通過工具進行調用和測試。
- Http API接口:目前較常見的接口,走http協議,通過路徑來區分調用的方法,請求的報文都是key-value形式的,返回的報文一般都是json串,包括的方法有post/get/put/delete/patch等。
- 前端(客戶端):負責貌美如花,用戶能看的到的都是前端,前臺的編程語言有:html,css,js等。
- 後端(服務端):負責養家糊口,功能主要靠後端實現的,後臺的編程語言有:python,java,php,c,c++等。
- 前後端的關系:前後端通過接口交互,采用通用的數據類型(json:所有語言可以解析),接口返回的都是json體,server端測試主要指的就是接口測試,測試依據接口文檔寫腳本測試。
- json串的組成 :key + value ,android開發就是java開發的一個分支,iso采用object-c編譯的。
- 抓包:就是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,為了提供安全性,許都公司的協議都采用https而不是http。
- 接口簽名:所謂接口簽名就是給接口做了加密處理,防止別人惡意篡改請求,它是一個加密(MD5)之後的字符串。
- URL
- 接口說明
- 請求方式:post/get/delete/put
- 入參
- 出參
- 請求、返回的樣例,狀態碼說明。
- get請求:瀏覽器輸入url可以直接發送請求,參數都在url裏面或者cookie裏面,一般用來獲取數據,多見於查詢接口。
- post請求:參數都在請求體裏面,一般包含請求頭和請求體,post請求比get請求安全,get請求長度有限制,post無限制,一般是發送數據,多見於創建接口。
- 200:代表請求已正常發送和接收。
- 300:3開頭的代表重定向,最常見的就是302,請求被重定向到其他地址。
- 例子:京東商城裏面,用戶在沒登錄的情況下先添加商品到購物車,下單後跳轉到登錄界面,再跳轉到下單頁面,就用到了重定向。
- 400:400代表請求有語法錯誤,一般是請求體有誤;401代表訪問的頁面沒有授權,用戶鑒權失敗;403代表沒有權限訪問頁面,404代表頁面不存在,多半是url有誤。
- 500:5開頭的代表服務器異常,500代表服務器內部錯誤,一般服務端有問題。
- 通用性測試:
- 正常測試:正確的url+請求方式+請求體等組合到一起。
- 異常測試:根據參數類型,是否必填,長度等進行異常測試。
- 參數組合:
- op1 : 新增:name ,班級,電話三個必選。
- op2 : 修改學生,name ,電話三選一
- 接口安全:
- 繞過驗證:修改價格
- 繞過身份鑒權
- 參數是否加密
- 密碼安全規則
- cookie :用戶登錄後,存在本地的一個鍵值對。
- session:用戶登錄後,存在服務端的一個鍵值對,相當於token 。
接口測試介紹