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


導語

“接口測試”一個讓人覺得非常高大上的名詞,特別是對於剛入門的測試同學而言。隨着測試技術不斷的深化,“接口測試”出現在我們視野中的頻次越來越高。那么接口測試到底是如何做的?接口測試的優勢又體現在哪些方面?

目錄

  • 什么是接口?
  • 什么是接口測試?
  • 為什么要做接口測試?
  • 接口測試與UI層測試的優劣勢對比
  • 接口測試流程

什么是接口?

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

接口一般分為兩種:程序內部接口、系統對外接口。
1. 系統對外接口:例如最常見的系統對外接口—支付寶支付接口,很多app的支付功能都是調用支付寶的支付接口來進行支付,而該接口是支付寶系統提供給外部系統進行調用的
2. 程序內部接口:模塊與模塊之間的交互,比如淘寶商城要購買商品,下訂單前必須要先登錄,那么下訂單與登錄之間就是一個交互,這個交互就是一個接口,讓程序內部的其他模塊進行調用的

常見接口類型

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

前后端

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

接口調用示意圖

 

什么是接口測試?

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

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

接口測試其實是一個非常簡單的過程,將接口的業務邏輯處理看成黑盒測試中的黑盒子,我們只需要考慮各種輸入條件下,會產生相應的什么結果。

接口測試就是黑盒測試

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

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

在回答這個問題前,我們需要知道接口的構成。HTTP協議的接口通常由以下幾部分構成:

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

由於沒有可操作的頁面,需要使用工具來進行接口測試,在后續的教程中,我會陸續詳細介紹接口測試的工具。

為什么要進行接口測試?

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

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

所以進行接口測試主要是因為:

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

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

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

接口測試流程

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

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

很多人認為會使用接口測試工具就是會接口測試。其實接口測試遠遠不止是工具的使用,SoapUI也好,Jmeter也好,這些工具都是我們在進行接口測試過程中能夠更方便的進行測試,而工具僅僅是工具,真正核心部分還是接口測試用例設計以及測試思維。那么當我們做接口測試時,到底需要做哪些方面的工作呢?

接口測試流程:

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

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



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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM