接口測試基礎知識

(1)什麼是接口測試

接口測試是測試系統組件間接口的一種測試php

接口測試主要用於檢測系統內部各個子系統之間外部系統與系統之間的交互。html

測試的重點是檢查數據交換傳遞控制管理的過程,以及系統間相互邏輯依賴關係等。前端

通俗來講接口測試就是接口提供方、接口調用方之間的交互,及邏輯處理的測試。python

數據交換:註冊
數據傳遞:將註冊數據傳遞到服務器,調用程序,執行數據庫sql語句,往數據表中插入數據
控制管理:在程序中設置字段的長度
系統間相互邏輯依賴關係:註冊成功以後調用登陸進行登陸;共享充電寶是否收取押金依賴芝麻信用分

接口:
1. GUI:圖形用戶界面,並非接口測試的重點。
2. API:應用程序接口,接口測試的主要對象。API專門用來提供給其餘系統進行調用的程序接口。

Browser/Server、Client/Server架構必然須要前端和服務器進行交互,接口就是它們交互的樞紐。程序員

其本質就是前臺發送一個request(請求)報文給服務器,而後服務器響應返回一個response(響應)報文。咱們對response報文進行分析,判斷是否和咱們的預期一致,從而檢驗業務是否正確實現。web

經過輸入看輸出

模擬實際場景(服務架構(Java、Python、php)、數據場景(CRUD)、業務場景),對接口進行模擬調用,驗證其響應性能、輸出結果、異常處理等測試點。面試

HTTP接口測試知識點:sql

考試系統網址:http://182.92.178.83:8088/student/index.html#/login數據庫

Request URL(請求地址)json

URL形式: http[s]://host[:port][abs_path][parameter]
好比: http://182.92.178.83:8088/api/student/user/register

Request Headers(請求頭):頭信息,包含了報文的描述信息

Accept(接收形式): application/json, text/plain, */*
Content-Type(提交形式): application/json
Cookie: JSESSIONID=C68ED1A8DA1A3B2CDACC5612F158467D

# Content-Type的幾種形式:
- form-data
- application/x-www-form-urlencoded
- application/json	
  好比:{"username":"ctt","password":"123456",age:21,"a":[{"b":123},{"c":456}]}

Request Method(提交方法): GET/POST DELETE/PUT

GET: 獲取服務器信息的一些操做。通常用於獲取數據
好比:
Request URL: http://182.92.178.83:8081/article/all?state=-1&page=1&count=6&keywords=
Request Method: GET
PS:直接在url後面鏈接參數,url有長度限制。

POST: 一些提交等操做。通常用於提交數據,註冊、上傳文件。

DELETE: 通常用於刪除操做(物理刪除)
好比:
Request URL: http://182.92.178.83:8081/admin/category/56
Request Method: DELETE

PUT: 跟post功能一致,可是有一個對等加密的過程,好比兩人同時提交就會對比誰先提交,執行先提交的那個操做,後提交的不作處理。好比邏輯刪除。(邏輯刪除:好比將state=0)
好比:
Request URL: http://182.92.178.83:8081/article/dustbin
Request Method: PUT

這四種形式不管用哪種都能實現對數據庫的增刪改查,那麼爲何會分四種呢,它更像是一種約定。

(面試題)get和post的區別❓

  1. 傳參方式不一樣,get是經過url?後面去傳參的,post是在請求體裏面傳參。
  2. 有些約定裏面,get更多的是作獲取信息的操做,post更多的是作提交信息的一些操做。

Request Parameters(請求參數)

Status Code(響應狀態碼)

200(服務器響應成功) 
404(找不到路徑)
500(服務器內部錯誤)

Response(響應信息)

(2)爲何要進行接口測試

接口測試相對於UI來講,更加穩定;

也能夠說接口測試是一種特殊的單元測試;

當一個系統提供了大量的後臺服務,有較少或者基本沒有頁面操做,比較適合開展接口測試;例如:某個系統大概有100多個對外的接口,每次上線,測試人員不得不一個一個驗證,此時若是開展自動化,將大大提升迴歸的效率和測試的覆蓋率。

爲何接口比UI更加穩定:若是接口響應信息都變了,UI也須要變。

🐒先後端分離,一個接口給多個端使用(web端、app端)

🐷何時作接口測試?

  1. 有大量用戶的時候,前端頁面限制了可是沒有限制完。

(3)怎樣作接口測試

  1. 方式一:先拿到接口測試規範文檔,再去作接口測試。
  2. 方式二:抓包(瀏覽器F十二、Charles、fiddler)。
1.接口測試在工做中的流程
  1. 準備階段(20%)

    拿到開發的接口文檔,並理解每一個接口的參數及含義;

    瞭解被測系統的業務流程。

  2. 編寫接口測試用例、執行階段(70%)

    測試用例/測試場景執行

    測試數據/系統數據收集

  3. 分析階段(5%)

    數據彙總/日誌分析

    測試報告

2.接口測試規範文檔

接口功能

URL

支持格式

HTTP請求方式

請求參數

🔑爲提升接口測試效率,及TDD(測試驅動開發)模式,前期咱們須要推進開發規範,接口說明文檔。

3.如何獲取接口(Charles、fiddler)

抓包工具Charles、fiddler,web端瀏覽器的F12。

(4)接口測試用例的設計

接口測試用例編寫要點:

  1. 測試每一個參數類型不合法的狀況。
  2. 測試每一個參數取值範圍不合法的狀況。
  3. 測試參數爲空的狀況。
  4. 測試參數先後臺定義的一致性。
  5. 測試每一個參數的上下限(這裏容易出致命的BUG,若是程序員處理不當,可能致使崩潰)。
  6. 測試每一個參數取值不合理的狀況(包括取的值不屬於本身,取值在這階段不會出現,取值超出了本身所謂的數量或者範圍)。
  7. 若是兩個請求有嚴格的前後順序,須要測試調轉順序的狀況。

(5)接口測試的流程規範(團隊中)

  1. 與產品、開發一塊兒梳理需求,肯定實現哪些接口和功能。
  2. 編寫測試計劃(開發人員預估時間、風險預估及解決時間,測試人員用例準備、數據準備、環境準備、與開發產品協調測試時間等)
  3. 測試計劃review。請各部門再進行溝通,肯定最終計劃。
  4. 編寫用例及自動化腳本。
  5. 用例review(以該用例爲最終驗證的用例)。
  6. 執行測試,提交bug,驗證bug。
  7. 測試總結(包括測試過程、開發過程遇到的問題、解決問題、小組內討論之後遇到這種問題如何能夠處理更快、對本身啓發)
相關文章
相關標籤/搜索