接口測試教程(一):接口測試理論基礎

導語

「接口測試」一個讓人以爲很是高大上的名詞,特別是對於剛入門的測試同窗而言。隨着測試技術不斷的深化,「接口測試」出如今咱們視野中的頻次愈來愈高。那麼接口測試究竟是如何作的?接口測試的優點又體如今哪些方面?前端

目錄

  • 什麼是接口?
  • 什麼是接口測試?
  • 爲何要作接口測試?
  • 接口測試與UI層測試的優劣勢對比
  • 接口測試流程

什麼是接口?

接口:外部系統與系統之間以及內部各個子系統之間的交互點 —百度百科後端

接口通常分爲兩種:程序內部接口、系統對外接口。
1. 系統對外接口:例如最多見的系統對外接口—支付寶支付接口,不少app的支付功能都是調用支付寶的支付接口來進行支付,而該接口是支付寶系統提供給外部系統進行調用的
2. 程序內部接口:模塊與模塊之間的交互,好比淘寶商城要購買商品,下訂單前必需要先登陸,那麼下訂單與登陸之間就是一個交互,這個交互就是一個接口,讓程序內部的其餘模塊進行調用的前端工程師

常見接口類型

1. HTTP 接口:經過HTTP協議來進行數據傳輸的接口
2. WebService 接口:經過soap協議進行數據傳輸的接口
3. 硬件接口:USB 、充電接口(此處不作討論)app

先後端

作接口測試前,須要對兩個概念有所瞭解,前端和後端
1. 前端:一般爲Web前端和app前端,前端的做用是爲了展現數據內容,作簡單的數據校驗,好比咱們看到的淘寶商城,那些商品信息,圖片展現等等
2. 後端:進行復雜計算的業務邏輯,功能實現,例如咱們購買商品後的價格計算,優惠活動的使用,最終的支付,都是經過後端實現的
而先後端就是經過接口來進行交互的。框架

接口調用示意圖

 

什麼是接口測試?

系統組件間接口測試。主要是檢測外部系統與系統之間,以及內部各個子系統之間的交互點,檢查數據的交換,傳遞,和控制管理過程,以及系統間的相互邏輯依賴關係,適用於爲其餘系統提供服務的底層框架系統和中心服務系統,主要測試這些系統對外部系統提供的接口,驗證其正確性與穩定性 —百度百科工具

接口測試就是經過測試不一樣輸入條件下,接口返回的結果是否與預期結果一致。測試

接口測試實際上是一個很是簡單的過程,將接口的業務邏輯處理當作黑盒測試中的黑盒子,咱們只須要考慮各類輸入條件下,會產生相應的什麼結果。spa

接口測試就是黑盒測試設計

而咱們知道黑盒測試又稱功能測試,那麼接口測試與功能測試是否是一回事呢?答案是否認的,爲何呢?功能測試還包含了程序的UI層,包含了按鈕,UI交互等功能,而接口測試是沒有頁面操做的,只能經過調用接口來進行測試,只須要給接口傳遞相應的輸入條件,再檢查接口輸出的結果是否符合預期便可。某種程度講,接口測試比功能測試還要更簡單一些。blog

那麼問題來了,如何調用接口來進行接口測試呢?

在回答這個問題前,咱們須要知道接口的構成。HTTP協議的接口一般由如下幾部分構成:

  • 接口地址
  • 請求方法
  • 輸入參數(輸入條件)
  • 返回值結果(輸出條件)

因爲沒有可操做的頁面,須要使用工具來進行接口測試,在後續的教程中,我會陸續詳細介紹接口測試的工具。

爲何要進行接口測試?

經過前文咱們知道,程序的前端是用來展現數據以及簡單的數據檢驗的,而真正的業務邏輯核心是後端。

在傳統的功能測試中,若是前端工程師尚未將前端工做作完,咱們測試是沒法展開測試工做的,另外一方面,既然前端有校驗功能,那後端就有可能會遺漏該功能的數據校驗,若是用戶經過抓包繞過前端,直接進行後端操做,咱們的程序就可能出現重大問題。

因此進行接口測試主要是由於:

  1. 儘早的測試介入,越早介入測試,發現的問題解決起來的成本是最低的。不少時候開發沒有將完整產品提交給測試時,測試時沒法工做的,就會有大部分時間處於等待狀態,而接口測試能夠在沒有前端界面下進行測試
  2. 後端的功能校驗在前端很難進行測試,由於前端已經有初步校驗控制,因此接口測試能夠發現不少在前端沒法發現的問題
  3. 提高測試效率,下降人工迴歸測試的人力成本與時間成本,縮短測試周期

接口測試與UI層功能測試優劣勢對比

  • 接口測試的介入時間更早,越早介入價值越高 (具體緣由能夠參考我另一篇文章:[軟件測試流程-全程軟件測試])
  • 接口測試的穩定性更高,變更少。接口測試經過,前端即時出現問題,解決起來也會很是快
  • 接口測試發現缺陷後,解決的成本更低。越底層的缺陷,影響的面就越廣,一個底層缺陷可能引發N個表面的缺陷,那時候解決起來就會很是麻煩,並且還不必定能找到源頭缺陷
  • 定位問題更加準確和快速。當咱們接口測試經過後,在功能測試中出現問題,咱們就能夠更快速和準確的定位問題,由於已經排除掉接口層的干擾了。

接口測試流程

接口測試的原理跟功能測試是同樣的,那麼它的流程跟功能測試流程其實也是基本一致的。

接口測試 不等於 接口測試工具使用

不少人認爲會使用接口測試工具就是會接口測試。其實接口測試遠遠不止是工具的使用,SoapUI也好,Jmeter也好,這些工具都是咱們在進行接口測試過程當中可以更方便的進行測試,而工具僅僅是工具,真正核心部分仍是接口測試用例設計以及測試思惟。那麼當咱們作接口測試時,到底須要作哪些方面的工做呢?

接口測試流程:

  1. 獲取需求文檔和接口文檔
  2. 經過對需求文檔分析出接口的業務邏輯要求以及業務邊界
  3. 經過對接口文檔分析出接口的技術指標(接口地址、請求方式、入參、出參)
  4. 接口測試用例設計(着重於接口測試數據準備)
  5. 使用接口測試工具進行接口測試
  6. 接口缺陷管理與跟蹤
  7. 接口自動化持續集成

在這次接口測試教程中,我會根據測試流程將接口測試進行詳細剖析,咱們會講到常見傳輸協議、抓包工具的使用、接口返回數據解析、接口測試用例設計、接口測試工具使用、接口自動化測試框架等內容,你們能夠持續關注這個系列,相信你必定會有收穫。



測試相關內容的交流,歡迎關注個人公衆號:山丘的測試之道

相關文章
相關標籤/搜索