介面測試怎麼做

来源:https://www.cnblogs.com/www642830685/archive/2020/07/24/13360346.html
-Advertisement-
Play Games

目錄: 一、什麼是介面? 二、介面測試流程 三、介面測試工具 四、介面測試技術點 五、總結 導讀: 為什麼要做介面測試 介面測試本質上是功能測試的一種,屬於後端伺服器測試。但是它的影響範圍要遠廣於web,app層面。原因很簡單,因為目前很多公司,服務架構都是多端共用一套介面。和用戶直接交互的UI界面 ...


目錄:

一、什麼是介面?

二、介面測試流程

三、介面測試工具

四、介面測試技術點

五、總結

導讀:

為什麼要做介面測試

介面測試本質上是功能測試的一種,屬於後端伺服器測試。但是它的影響範圍要遠廣於web,app層面。原因很簡單,因為目前很多公司,服務架構都是多端共用一套介面。和用戶直接交互的UI界面,web,app,小程 序,H5,它們有可能都是公用一套介面邏輯。後端如果服 務器掛了,或者出bug了,這些終端可能都會出問題。所以,做介面測試就非常有必要的。重要性:

1.越底層發現bug,它的修複成本是越低的。

2.前端隨便變,介面測好了,後端不用變,前後端是兩撥人開發的。

3.檢查系統的安全性、穩定性,前端傳參不可信,比如京東購物,前端價格不可能傳入-1元,但是通過介面可以傳入-1元。

4.如今的系統複雜度不斷上升,傳統的測試方法成本急劇增加且測試效率大幅下降,介面測試可以提供這種情況下的解決方案。

5. 介面測試相對容易實現自動化持續集成,且相對UI自動化也比較穩定,可以減少人工回歸測試人力成本與時間,縮短測試周期,支持後端快速發版需求。介面持續集成是為什麼能低成本高收益的根源。

6. 現在很多系統前後端架構是分離的,從安全層面來說:

(1)只依賴前端進行限制已經完全不能滿足系統的安全要求(繞過前面實在太容易), 需要後端同樣進行控制,在這種情況下就需要從介面層面進行驗證。( 想瞭解更多測試內容,加入我們,642830685,免費領取最新軟體測試大廠面試資料和Python自動化、介面、框架搭建學習資料!技術大牛解惑答疑,同行一起交流)

(2)前後端傳輸、日誌列印等信息是否加密傳輸也是需要驗證的,特別是涉及到用戶的隱私信息,如身份證,銀行卡等。

一、什麼是介面

介面測試是目前測試的主流手段之一,採用介面測試也有許多優點:

1.提高測試效率:可通過自動化手段實現重覆驗證,也可以在依賴服務沒有開發完成時優先測試部分服務

2.方便定位Bug:通過介面的抓包和分析,可以清楚的知道問題是來源於前端還是後臺服務

3.提高服務端健壯性:通過介面測試可以測出來開發是否在後端做了校驗,幫助提高服務的健壯性

對很多新手來說介面測試很高大上,但實際上介面測試很簡單,掌握關鍵技術以後就可以把介面測試應用到日常工作中。開始講解介面測試之前,先看看當你在瀏覽器中輸入地址,並看到Web頁面的時候底層問題:

1.瀏覽器根據輸入把請求發送到伺服器

2.伺服器獲取到請求以後生成響應文件,把響應文件發送給瀏覽器

3.瀏覽器解析響應,渲染數據生成Web頁面的展示效果

 

 說了這麼多,介面測試到底有重要呢,那麼作為小白應該如何學習介面測試呢?

重點來了

首先你要學習網路協議知識,因為大部分介面都是基於http協議的,當然還有其它的比如dubbo協議。

其次你需要學習兩款測試工具,postman用來調用介面,fiddler用來抓包定位bug,當然,你使用瀏覽器自帶的F12也是可以的。

二、介面測試流程

介面測試流程和手動測試/UI測試流程類似,但是側重點不同:

需求分析:需求文檔 VS 介面文檔。

編寫和評審用例:根據需求變更結合業務優先順序,邊界值等價類等分析方法設計手動測試用例;根據介面的參數組合以及介面的預期返回設計介面測試用例。

準備測試環境和測試腳本:介面測試需選擇合適的工具實現步驟2中評審的用例。

執行測試用例,發送測試報告:介面測試自動運行腳本,生成和發送測試報告。

三、介面測試工具

介面測試的實現有多種工具,可根據團隊情況選型:

Postman:谷歌提供的開源介面測試工具,支持Http介面的調用和驗證

Jmeter:Apache提供的開源介面測試工具,除了支持Http介面還有很多擴展功能(Mysql,Redis,RabbitMQ…)

Fiddler:抓包工具,常用於介面分析以及Mobile端介面自動化

HttpComponents:Apache提供的開源包,可以基於它實現介面代碼的編碼

四、介面測試技術點

介面測試最常用的技術點:

1.參數化:自動生成不同的介面數據,或者符合後端服務校驗規約的介面數據(eg: 手機號,身份證,郵箱,用戶姓名)

2.斷言:驗證介面的返回,包括響應碼,響應欄位的校驗(Json報文,HTML或XML報文)

3.關聯:多介面測試時,不同介面間的參數傳遞

4.資料庫:除了驗證相應報文,還可驗證資料庫欄位確保程式邏輯的正確性

5.持續集成:介面工具或框架和Jenkins等持續集成工具的結合,實現無人值守或者自動觸發

以上就是一個簡單的介面測試涉及到的方方面面,小伙伴們在日常工作中可以按這個思路開啟介面測試之路,並不斷豐富總結自己對介面測試工具,知識點以及流程的靈活應用,為什麼讓大家一定要掌握好介面測試?

原因也簡單,因為它是你後續深入進階學習自動化和性能測試的基礎。拿介面自動化來說,這是目前公司使用性價比最高的自動化,原因就在於ui自動化成本太高,經常頁面大改,可能整個框架就廢了,所以很多公司都優先做介面自動化,比較穩定,目前需求最多的。所以找工作,優先學習掌握介面自動化。

五、總結:

介面測試不僅僅是你找工作的必備技能,更是你以後深入學習自動化以及性能測試的基礎。除非,你想一直做點點點工程師,不然自動化測試和性能測試重要性不言而喻。當然,也不是你想點就一直能點的,非常容易就被淘汰!

希望本文對你有所幫助,想要瞭解更多,可以加入我們哦

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 基於面向對象思想設計的應用程式有時遇到需要場景大量相同或顯示對象實例的場景,這些數量龐大的實例很可能會消耗很多系統資源,最直接的就是記憶體了。比如要一款圍棋游戲,如果每次落子都新建一個對象,將會占用大量記憶體,而實際上棋子只有黑白兩色,不同的只是落子位置而已。另外,大量的主動型對象還會占用很多CPU和顯 ...
  • 《Microsoft .NET 企業級應用架構設計 (第2版)》 [作者] (意) Dino Esposito (意) Andrea Saltarello[譯者] (中) 李永倫[出版] 人民郵電出版社[版次] 2016年04月 第2版[印次] 2018年05月 第5次 印刷[定價] 69.00元 ...
  • 基本介紹 適配器模式將某個類的介面轉換成客戶端期望的另一個介面表示,主要目的是相容性,讓原本因介面不匹配不能一起工作的兩個類可以協同工作。 適配器模式屬於結構性模式,主要分為三類:類適配器模式、對象適配器模式、介面適配器模式。 類適配器模式 什麼是類適配器模式 類適配器模式介紹:Adapter類,通 ...
  • 前言 該腳本的代碼大部分是參考自阿裡雲的官方幫助文檔。 1, 腳本語言使用的是python, 我個人只是瞭解python,沒有太深入的知識功底 2, 腳本代碼我會儘量詳細地添加註釋說明,有問題歡迎留言交流,但回覆可能不會那麼及時。 前置條件 1、功能變數名稱是在阿裡雲購買的 (我的功能變數名稱本身就是阿裡雲買的,其 ...
  • 資料庫版本管理工具 什麼是資料庫版本管理? 做過開發的小伙伴們都知道,實現一個需求時,一般情況下都需要設計到資料庫表結構的修改。那麼我們怎麼能保證項目多人開發時,多個資料庫環境(測試,生產環境)能夠保持一致呢?在沒有資料庫版本管理工具之前,需要將資料庫修改腳本拷貝到每個資料庫環境進行執行。而有了數據 ...
  • 一、常量和C預處理器 1.符號常量(symbolic constant) 編譯程式的時候程式中的符號常量都會被實際字面量所替換,這一過程稱為編譯時替換 格式:末尾不加分號,中間不加等號,字面量可以是數字,字元,字元串等 #define CHANGLIANGNAME 890 2.const限定符 C9 ...
  • 首先,回顧一下基礎的巨集操作: C語言巨集 #與## #的作用是字元串化:在一個巨集中的參數前面使用一個#,預處理器會把這個參數轉換為一個字元數組 #define ERROR_LOG(info) fprintf(stderr,"error:"#info"\n"); 則有: ERROR_LOG("add") ...
  • 全棧的自我修養: 0005 Java 包掃描實現和應用(Jar篇) It's not the altitude, it's the attitude. 決定一切的不是高度而是態度。 Table of Contents 依賴的 Jar 思路 完整代碼 整合後代碼 如果你曾經使用過 Spring, 那你 ...
一周排行
    -Advertisement-
    Play Games
  • C#TMS系統代碼-基礎頁面BaseCity學習 本人純新手,剛進公司跟領導報道,我說我是java全棧,他問我會不會C#,我說大學學過,他說這個TMS系統就給你來管了。外包已經把代碼給我了,這幾天先把增刪改查的代碼背一下,說不定後面就要趕鴨子上架了 Service頁面 //using => impo ...
  • 委托與事件 委托 委托的定義 委托是C#中的一種類型,用於存儲對方法的引用。它允許將方法作為參數傳遞給其他方法,實現回調、事件處理和動態調用等功能。通俗來講,就是委托包含方法的記憶體地址,方法匹配與委托相同的簽名,因此通過使用正確的參數類型來調用方法。 委托的特性 引用方法:委托允許存儲對方法的引用, ...
  • 前言 這幾天閑來沒事看看ABP vNext的文檔和源碼,關於關於依賴註入(屬性註入)這塊兒產生了興趣。 我們都知道。Volo.ABP 依賴註入容器使用了第三方組件Autofac實現的。有三種註入方式,構造函數註入和方法註入和屬性註入。 ABP的屬性註入原則參考如下: 這時候我就開始疑惑了,因為我知道 ...
  • C#TMS系統代碼-業務頁面ShippingNotice學習 學一個業務頁面,ok,領導開完會就被裁掉了,很突然啊,他收拾東西的時候我還以為他要旅游提前請假了,還在尋思為什麼回家連自己買的幾箱飲料都要叫跑腿帶走,怕被偷嗎?還好我在他開會之前拿了兩瓶芬達 感覺感覺前面的BaseCity差不太多,這邊的 ...
  • 概述:在C#中,通過`Expression`類、`AndAlso`和`OrElse`方法可組合兩個`Expression<Func<T, bool>>`,實現多條件動態查詢。通過創建表達式樹,可輕鬆構建複雜的查詢條件。 在C#中,可以使用AndAlso和OrElse方法組合兩個Expression< ...
  • 閑來無聊在我的Biwen.QuickApi中實現一下極簡的事件匯流排,其實代碼還是蠻簡單的,對於初學者可能有些幫助 就貼出來,有什麼不足的地方也歡迎板磚交流~ 首先定義一個事件約定的空介面 public interface IEvent{} 然後定義事件訂閱者介面 public interface I ...
  • 1. 案例 成某三甲醫預約系統, 該項目在2024年初進行上線測試,在正常運行了兩天後,業務系統報錯:The connection pool has been exhausted, either raise MaxPoolSize (currently 800) or Timeout (curren ...
  • 背景 我們有些工具在 Web 版中已經有了很好的實踐,而在 WPF 中重新開發也是一種費時費力的操作,那麼直接集成則是最省事省力的方法了。 思路解釋 為什麼要使用 WPF?莫問為什麼,老 C# 開發的堅持,另外因為 Windows 上已經裝了 Webview2/edge 整體打包比 electron ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...