1. 程式人生 > >接口測試介紹

接口測試介紹

公司 編輯 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
  • 入參
  • 出參
  • 請求、返回的樣例,狀態碼說明。
post請求和get請求的區別:
  • 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的區別:
  • cookie :用戶登錄後,存在本地的一個鍵值對。
  • session:用戶登錄後,存在服務端的一個鍵值對,相當於token 。

接口測試介紹