介面測試怎麼做

来源: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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...