主頁 > 軟體設計 > 介面測驗——介面和介面測驗的概念&HTTP協議&介面風格&介面測驗流程

介面測驗——介面和介面測驗的概念&HTTP協議&介面風格&介面測驗流程

2021-12-31 09:04:32 軟體設計

介面和介面測驗的概念&HTTP協議&介面風格&介面測驗流程

  • 1 什么是介面?
    • 1.1 用戶界面
    • 1.1 硬體介面
    • 1.2 軟體介面
      • 1.2.1 介面型別
  • 2 什么是介面測驗?
    • 2.1 原理
    • 2.2 分類
    • 2.3 介面測驗的優點
  • 3 HTTP協議
    • 3.1 URL
    • 3.2 HTTP請求
      • 3.2.1 請求行
      • 3.2.2 請求頭
      • 3.2.3 請求體
    • 3.3 HTTP回應
      • 3.3.1 回應行/狀態行
      • 3.3.2 回應頭
      • 3.3.3 回應體
    • 3.4 介面風格
      • 3.4.1 傳統風格介面
      • 3.4.2 RESTful風格介面
  • 4 介面測驗流程

1 什么是介面?

1.1 用戶界面

人類與電腦等資訊機器或人類與程式之間的介面

1.1 硬體介面

電腦等資訊機器硬體組件間的介面

1.2 軟體介面

電腦等資訊機器軟體組件間的介面,是資料互動的通道,在系統或組件間,完成資料的傳遞,

1.2.1 介面型別

(1)按協議劃分:
HTTP、TCP、UDP、IP、FTP等

(2)按語言劃分:
Python、Java、PHP、C、C++等

(3)按范圍劃分:

  • 系統之間:內部系統之間,內部系統和外部系統之間,
  • 程式內部:方法函式和方法之間;類和類之間;模塊和模塊之間,

2 什么是介面測驗?

介面測驗主要測驗系統或組件之間互動的資料的正確性,以及邏輯依賴關系的正確性,代替前端或者第三方驗證后臺回應資料是否正確,

2.1 原理

測驗人員模擬客戶端向服務器發送請求報文,服務器接收請求報文后對相應的報文做處理并向客戶端回傳應答,客戶端接收回應資料后并進行判斷的一個程序,
可使用工具(Postman、Fidler、jmeter)或代碼(Python+unittest+request)模擬客戶端向服務器發送請求,校驗服務器回發的回應資料是否與預期結果一致,

2.2 分類

(1) Web介面測驗

  • 1)服務器介面測驗:測驗服務器與瀏覽器的介面
  • 2)外部介面測驗:第三方介面測驗

(2)模塊介面測驗(C/S架構的應用)

2.3 介面測驗的優點

(1)介面測驗符合測驗質量控制前移原則,提早介入,
(2)可以發現頁面操作發現不了的問題,
(3)可以提高測驗效率,提升用戶體驗,降低研發成本(介面的一個BUG可能對應上層界面多個BUG),
(4)介面測驗也是站在用戶角度開展的測驗,

3 HTTP協議

協議是計算機通信網路中兩臺計算機之間進行通信所必須共同遵守的規則或規定;HTTP協議,即超文本傳輸協議,規定了瀏覽器和服務器之間通信的規則,是基于請求和回應模式的應用層協議,是目前互聯網中廣泛使用的一種協議,
HTTP協議特點:支持客戶端、服務器模式、簡單快速、靈活、無連接、無狀態

3.1 URL

URL,即統一資源定位符,是互聯網上標準資源的地址,HTTP使用
URL來建立連接和傳輸資料,互聯網上的每個資源都有唯一的URL,

格式:協議://域名:埠號/路徑?查詢引數1&查詢引數2
在這里插入圖片描述

  • 協議:HTTP/HTTPS
  • 域名:本質是IP地址,是為了方便用戶去記憶,而自己設計的一個名字,一般需要花錢購買,由一級域名,二級域名,三級域名組成,和服務器一樣都需要花錢購買,國內常見的服務商有:萬網,新網,西部資料,美橙互聯等
    • 一級域名:最后一個點后面的內容,.com, .net, .cn(如:www.baidu.com的一級域名為:com)
    • 二級域名:一級域名左邊,一般為需求方自己設計,一級域名和二級域名連在一起應是全世界唯一(如:www.baidu.com的二級域名為:baidu)
    • 三級域名:一般為用戶自定義,最常見的就是www
  • 埠號:在網路主機上定位一個應用,埠號可以省略,沒有指定埠號,默認跟隨協議
    • HTTP協議默認埠號:80
    • HTTPS協議默認埠號:443
  • 路徑:對應網頁的源代碼或網路中的一個資料資源;若資源路徑為空,相當于資源路徑為“/”,
  • 查詢引數:傳參給網頁原始碼,查詢引數語法為鍵值對

3.2 HTTP請求

HTTP請求由客戶端發送給服務器,規定了發送給服務器的資料語法格式;請求內容包括:請求行、請求頭、請求空行、請求體

3.2.1 請求行

主要內容:請求方法、 URL、協議版本
在這里插入圖片描述
(1)請求方法:

請求方法主要作用請求體有無資料
POST新增
GET查詢
PUT修改
DELETE洗掉

(2)協議版本:http1.1、http1.2、http2.0,主要使用 http1.1

3.2.2 請求頭

請求頭中的資料(資料為鍵值對)主要向服務器描述客戶端/瀏覽器的基本資訊,
在這里插入圖片描述

Accept:客戶端能夠顯示的資訊型別
Accept-Encoding:瀏覽器支持的壓縮型別
Accept-language: 瀏覽器支持的語言型別
Connection:連接方式,如:Connection:keep-alive ??保持較短連接,反復和服務器通訊
Cookie
host:主機
User-Agent:向服務器描述瀏覽器的型別
Content-Type: 請求體的資料型別

3.2.3 請求體

POST和PUT請求有請求體,GET和DELETE請求沒有請求體,

新版本谷歌瀏覽器開發者工具中,請求體獨立出了一個頁簽,
在這里插入圖片描述

3.3 HTTP回應

HTTP回應由服務器回發送給客戶端,規定了服務器回發給客戶端的資料的語法格式,回應內容包括回應行/狀態行、回應頭、回應空行、回應體

3.3.1 回應行/狀態行

主要內容:協議版本、狀態碼、狀態描述

(1)協議版本
http1.1、http1.2、http2.0,主要使用 http1.1

(2)狀態碼
針對http請求,回應的狀態,

* 狀態碼由3位數字組成,第一位數字定義了回應型別,有5種可能取值:

  • 1xx:指示資訊——表示請求已接收,繼續處理
  • 2xx:成功——表示請求已被成功接收、理解、接受
  • 3xx:重定向——要完成請求必須進行更進一步的操作
  • 4xx:客戶端錯誤——請求有語法錯誤或請求無法實作
  • 5xx:服務端錯誤——服務器無法實作合法的請求
狀態碼描述
200服務器成功回傳用戶請求的資料
201用戶新建或修改資料成功
202表示一個請求已經進入后臺排隊(異步任務)(客戶端發送的請求服務端已接受,但服務器還未完成處理)
204用戶洗掉資料成功
301請求地址被永久移動到新的URL,網頁會跳轉到新的URL
302請求地址被臨時性移動
400用戶發出的請求有錯誤,服務器沒有進行新建或修改資料的操作
401表示用戶沒有權限(用戶名、密碼、令牌錯誤)
403用戶被授權,但訪問被禁止,服務器理解客戶端的請求,但拒絕處理它,通常是服務器上檔案或目錄權限問題導致的Web訪問錯誤
404服務器無法根據請求找到資源,請求的資源(網頁)不存在了
406用戶請求的格式不存在(用戶請求JOSN格式的資料,但只有XML的)
410用戶請求的資源被永久洗掉, 且不會再得到
501服務器不具備完成請求的功能,無法完成此請求
505服務器發生了內部錯誤,無法完成客戶端請求

更完整的狀態碼可參照:https://blog.csdn.net/wyp1725726792/article/details/102741600

3.3.2 回應頭

回應頭向客戶端描述服務器的基本資訊,
在這里插入圖片描述
Content- Type:向客戶端描述回應體的資料型別
Server:服務器的版本
X- Frame- Option:網頁中能否顯示iframe,same origin表示該頁面可以在相同域名頁面的 frame 中展示,
Content- length:回應體長度

3.3.3 回應體

回應體的資料型別受回應頭中Content-Type的值影響,回應體的常見的型別:json、表單、圖片,
在這里插入圖片描述

3.4 介面風格

3.4.1 傳統風格介面

傳統風格介面針對用戶的某一個操作(增刪改查)URL不唯一,即一個操作可能對應多個URL,回應狀態碼全部都為 200,
全部使用POST和GET實作對資料的基本操作,

3.4.2 RESTful風格介面

RESTful是一種為了提高程式易讀性和易維護性而制定的介面設計規范,是一個資源定位、資源操作的風格,而非標準,只是提供了一組設計原則,使用唯一的URL定位唯一的資源,在 URL中不使用動詞,而替換使用詞,結合請求方法,區分具體增刪改查操作,

Restful風格規范了:
(1)URL的實作方式
(2)請求的資料的實作方式
(3)回應的資料的實作方式

RESTful風格使用POST、DELETE、PUT、GET分別表示增、刪、改、查四種操作,

  • POST:從服務器新建一個資源
  • DELETE:從服務器洗掉資源
  • PUT:從服務器更新資源
  • GET:從服務器獲取一項或多項資源

(1) 增

  • 請求方式:POST
  • 提交資料格式:鍵值對 或 JSON
  • 回應狀態碼: 201 或 200(更多為201)
  • 回應回傳的資料:回傳新生成的資源物件

(2)刪

  • 請求方式:DELETE
  • 提交資料格式:鍵值對
  • 回應狀態碼:204
  • 回應回傳的資料:空

(3)改

  • 請求方式:PUT
  • 提交資料格式:鍵值對 或 JSON
  • 回應狀態碼:201 或 200 (更多為201)
  • 回應回傳的資料:回傳完成的資源物件

(4) 查

  • 請求方式:GET
  • 提交資料格式:鍵值對 或 JSON
  • 回應狀態碼:200
  • 回應回傳的資料:回傳資源物件的串列/陣列 或 單個資源物件

4 介面測驗流程

step1:分析需求檔案,參與需求評審
step2:結合開發提供的介面檔案,分析介面
step3:撰寫介面測驗用例
step4:執行介面測驗用例(通過Postman、fiddler、jmeter,或者使用代碼方式:Python + UnitTest + requests)
step5:對缺陷進行跟蹤管理
step6:撰寫介面測驗報告

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/398657.html

標籤:其他

上一篇:傳輸層(概念)

下一篇:常見狀態回應碼

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more