介面測試怎麼做

来源: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
  • 前言 插件化的需求主要源於對軟體架構靈活性的追求,特別是在開發大型、複雜或需要不斷更新的軟體系統時,插件化可以提高軟體系統的可擴展性、可定製性、隔離性、安全性、可維護性、模塊化、易於升級和更新以及支持第三方開發等方面的能力,從而滿足不斷變化的業務需求和技術挑戰。 一、插件化探索 在WPF中我們想要開 ...
  • 歡迎ReaLTaiizor是一個用戶友好的、以設計為中心的.NET WinForms項目控制項庫,包含廣泛的組件。您可以使用不同的主題選項對項目進行個性化設置,並自定義用戶控制項,以使您的應用程式更加專業。 項目地址:https://github.com/Taiizor/ReaLTaiizor 步驟1: ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • Channel 是乾什麼的 The System.Threading.Channels namespace provides a set of synchronization data structures for passing data between producers and consume ...
  • efcore如何優雅的實現按年分庫按月分表 介紹 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能、輕量級針對分表分庫讀寫分離的解決方案,具有零依賴、零學習成本、零業務代碼入侵適配 距離上次發文.net相關的已經有很久了,期間一直在從事java相關的 ...
  • 前言 Spacesniffer 是一個免費的文件掃描工具,通過使用樹狀圖可視化佈局,可以立即瞭解大文件夾的位置,幫助用戶處理找到這些文件夾 當前系統C盤空間 清理後系統C盤空間 下載 Spacesniffer 下載地址:https://spacesniffer.en.softonic.com/dow ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • 一、ReZero簡介 ReZero是一款.NET中間件 : 全網唯一開源界面操作就能生成API , 可以集成到任何.NET6+ API項目,無破壞性,也可讓非.NET用戶使用exe文件 免費開源:MIT最寬鬆協議 , 一直從事開源事業十年,一直堅持開源 1.1 純ReZero開發 適合.Net Co ...
  • 一:背景 1. 講故事 停了一個月沒有更新文章了,主要是忙於寫 C#內功修煉系列的PPT,現在基本上接近尾聲,可以回頭繼續更新這段時間分析dump的一些事故報告,有朋友微信上找到我,說他們的系統出現了大量的http超時,程式不響應處理了,讓我幫忙看下怎麼回事,dump也抓到了。 二:WinDbg分析 ...
  • 開始做項目管理了(本人3年java,來到這邊之後真沒想到...),天天開會溝通整理需求,他們講話的時候忙裡偷閑整理一下常用的方法,其實語言還是有共通性的,基本上看到方法名就大概能猜出來用法。出去打水的時候看到外面太陽好好,真想在外面坐著曬太陽,回來的時候好兄弟三年前送給我的鍵盤D鍵不靈了,在打"等待 ...