如何使用Postman,通過Mock的方式測試我們的API

這篇文章將教會大家如何利用 postman,通過 Mock 的方式測試我們的 API。

什么是 Mock

Mock 是一項特殊的測試技巧,可以在沒有依賴項的情況下進行單元測試。通常情況下,Mock 與其他方法的主要區別就是,用于取代代碼依賴項的模擬對象允許設置期望值。簡而言之,Mock 就是創建了一個對象,模擬真實對象的行為。

目的是什么

前端與后端的工作進度不同步,使得兩方團隊無法有效的完成工作。Postman 中的 Mock 服務器可以減輕團隊開發過程中的這種不同步問題。開發可以在不啟動后端的基礎上,查看預期的響應結果。是一種快速開發的過程。

意義何在

在 API 開發的前期,構建 Mock 集合可以幫助開發團隊之間清晰溝通,并盡快就預期結果達成一致。事實上,在開發過程中,所有的團隊都可以并行工作,相互依賴的工作可以減少延期。

什么是 Mock 服務

Mock 服務不是一個真實的服務,他只是一個被偽裝成真實服務的假服務。通過它,我們可以測試我們的 API 并檢查結果正確與否。Postman 允許我們創建兩種類型的 Mock 服務,私有的和公有的。

私有的 Mock 服務需要我們在請求頭里面添加 Postman API key,例如:x-api-key:

公有 Mock 服務可以被任何人訪問。所以使用過程中不需要添加 Postman API key。

如何使用 Postman 創建 Mock 服務

你可以點擊工具欄里面的"New"按鈕,或者在啟動 Postman 的時候也會彈出這個選項。

我們需要按照下面的步驟將 Mock 的完整內容添加到既有的集合里面,然后通過 Postman 的 Echo 服務模擬調用 API 的過程:

  • 1.發送請求(R1)
  • 2.將請求(R1)保存到集合里面(C1)
  • 3.將請求(R1)的響應保存到集合里面(C1)
  • 4.為集合 C1 創建一個 Mock(M1)
  • 5.使用 Mock 服務(M1)發送一個請求
  • 6.使用查詢參數進行匹配

步驟 1、發送請求(R1)

使用 Postman,發送一個?GET?請求到?https://postman-echo.com/get?test=123??響應結果如下圖所示:

步驟 2、將請求(R1)保存到集合里面(C1)

點擊?Save?按鈕打開?SAVE REQUEST?對話框。你可以將請求保存到既有的集合里面,也可以新建一個集合保存。這里我們新建一個集合?C1,后續可以在?Collections?頁簽里面查看。

步驟 3、將請求(R1)的響應保存到集合里面(C1)

點擊?Save Response?按鈕,保存請求 R1 的返回結果。

這會跳轉到下圖所示的界面,在這里,可以將請求響應信息保存起來作為示例使用,作為示例使用。我們把這個示例叫做?P**1**

關于請求的方式、URL、狀態都很重要,可以用于評估創建的 Mock 會返回哪些響應。檢查一下所有的這些元素是否符合要求,之后再點擊?Save Example?按鈕。點擊左上角的返回按鈕返回請求創建器,就可以在右上角看到我們創建的示例了,把它添加到我們的請求里面。

步驟 4、為集合 C1 創建一個 Mock(M1)

在 Postman 中,點擊集合 C1 旁邊的箭頭 (?) 打開詳細信息頁面,如果要打開?MOCK COLLECTION?對話框,在?Mocks?頁簽下面,點擊?Create a Mock server?按鈕。在這里,你可以把你的 Mock 服務包括在特定的環境里面,或者選擇公有或者私有類型,作為默認的 Mock 服務類型。

當你 Mock 了某個集合之后,集合的詳細信息會顯示在 Mock 頁簽下面。你也可以看到 接下來的步驟里面需要 Mock 的 URL。

步驟 5、使用 Mock 服務(M1)發送一個請求

目前我們已經設計好了我們的 Mock 服務 M1,現在我們試著請求一下這個 Mock 的端口。復制這個 Mock 的 URL,然后粘貼到我們上一步創建的 Mock 服務的新請求里面。

Mock 服務的響應結果完全取決于你之前保存的示例以及包含的 URL 和請求方法類型。我們之前保存了一個示例,請求路徑是?/get,請求方法是?GET。因此,向?/get?路徑發送一個?GET?請求會得到符合我們預期的響應。

步驟 6、使用查詢參數進行匹配

Postman 對 Mock 服務的功能進行了擴展,可根據匹配的查詢參數返回不同的響應結果。Mock 服務會根據查詢參數匹配保存的示例。所以當你有且僅有查詢參數存在差異的時候,并且你希望在相同的請求路徑上為不同的查詢參數模擬不同的響應時,Postman Mock 服務器將返回與請求路徑和相應的查詢參數匹配的確切答案。

結語

我們已經了解了如何創建集合、保存請求、保存示例、創建 Mock 并使用。

Postman 帳戶每月提供有限數量的免費 Mock 服務器調用。你可以在 Postman API 或帳戶使用頁面查看你的使用限制。

同時,在這我為大家準備了一份軟件測試視頻教程(含面試、接口、自動化、性能測試等),就在下方,需要的可以直接去觀看。

【2025最新版】字節大牛講的最全最細的自動化測試全套教程!永久白嫖,拿走不謝,全程干貨無廢話!逼自己15天內學完,從軟件測試基礎到項目實戰一套全通關!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72985.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72985.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72985.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何檢查電腦的硬盤健康狀況?

檢查硬盤健康狀況可以使用多種工具和方法。以下是一些常用的工具和步驟: Windows系統: 使用Windows內置工具: 磁盤檢查:可以通過命令提示符(cmd)使用chkdsk命令來檢查硬盤錯誤。例如,輸入chkd…

JavaWeb中提供的對cookie的操作

JavaWeb中提供的對cookie的操作 簡介服務端創建Cookie對象,然后將Cookie添加到HTTP響應結果中讀取請求端瀏覽器的Cookie設置/讀取Cookie在客戶端的有效期URL編碼/解碼 簡介 Servlet API為Servlet訪問Cookie提供了簡單易用的接口。javax.servlet.http.Cookie類用來表…

Android中AIDL和HIDL的區別

在Android中,AIDL(Android Interface Definition Language) 和 HIDL(HAL Interface Definition Language) 是兩種用于定義跨進程通信接口的語言。AIDL 是 Android 系統最早支持的 IPC(進程間通信&#xff0…

學習計劃:第四階段(第十周)

目錄 第四階段:特殊方法與高級特性 第 10 周:綜合復習與實踐 周一 周二 周三 周四 周五 總結 一、項目設計與實現 二、問題與解決 三、學習成果 四、后續展望 第四階段:特殊方法與高級特性 第 10 周:綜合復習與實踐 …

ROS2學習筆記2

前言 本篇文章屬于ROS2humble的學習筆記,來源于B站魚香ROSup主。下面是這位up主的視頻鏈接。本文為個人學習筆記,只能做參考,細節方面建議觀看視頻,肯定受益匪淺。 《ROS 2機器人開發從入門到實踐》課程介紹_嗶哩嗶哩_bilibili …

vue3中接收props的兩種寫法

在 Vue 3 中,接收 props 有兩種主要的寫法,分別是運行時聲明和基于類型的聲明。下面為你詳細介紹這兩種寫法。 1. 運行時聲明 運行時聲明是 Vue 2 中就已經存在的方式,在 Vue 3 中依然可以使用。這種方式通過在組件中使用 defineProps 宏來…

用android studio模擬器,模擬安卓手機訪問網頁,使用Chrome 開發者工具查看控制臺信息

web 網頁項目在安卓手機打開時出現問題,想要查看控制臺調試信息。記錄一下使用android studio 模擬器訪問的方式。 步驟如下: 1.安裝android studio,新增虛擬設備(VDM- virtual device manager) 點擊Virtual Device Manager后會…

《打造視頻同步字幕播放網頁:從0到1的技術指南》

《打造視頻同步字幕播放網頁:從0到1的技術指南》 為什么要制作視頻同步字幕播放網頁 在數字化信息飛速傳播的當下,視頻已然成為內容輸出與獲取的核心載體,其在教育、娛樂、宣傳推廣等諸多領域發揮著舉足輕重的作用 。制作一個視頻同步字幕播…

spring-boot-starter和spring-boot-starter-web的關聯

maven的作用是方便jar包的管理,所以每一個依賴都是對應著相應的一個或者一些jar包,從網上看到很多對spring-boot-starter的描述就是“這是Spring Boot的核心啟動器,包含了自動配置、日志和YAML。”沒看太明白,所參與的項目上也一直…

數智讀書筆記系列015 探索思維黑箱:《心智社會:從細胞到人工智能,人類思維的優雅解讀》讀書筆記

引言 《The Society of Mind》(《心智社會》)的作者馬文?明斯基(Marvin Minsky),是人工智能領域的先驅和奠基者之一 ,1969 年獲得圖靈獎,被廣泛認為是對人工智能領域影響最大的科學家之一。他…

Vue 項目中,.env文件怎么用?

在 Vue 項目中,.env 文件用于存儲環境變量,不同的環境(如開發環境、測試環境、生產環境)可以使用不同的 .env 文件來管理對應的配置信息。以下是關于 Vue 項目中 .env 文件的詳細使用方法: 1. 項目創建 確保你已經使…

【網絡編程】WSAAsyncSelect 模型

十、基于I/O模型的網絡開發 接著上次的博客繼續分享:select模型 10.8 異步選擇模型WSAAsyncSelect 10.8.1 基本概念 WSAAsyncSelect模型是Windows socket的一個異步I/O 模型,利用這個模型,應用程序 可在一個套接字上接收以Windows 消息為基…

論文閱讀方法

文章目錄 步驟一:對論文進行自我判斷閱讀題目和關鍵詞。閱讀摘要閱讀總結要點 步驟二:閱讀文章閱讀圖表和圖表的注釋閱讀引言閱讀實驗部分閱讀結果和作者對結果的討論(創新點)要點 步驟三:精度論文回答問題1回答問題2回…

計算機網絡:計算機網絡的組成和功能

計算機網絡的組成: 計算機網絡的工作方式: 計算機網絡的邏輯功能; 總結: 計算機網絡的功能: 1.數據通信 2.資源共享 3.分布式處理:計算機網絡的分布式處理是指將計算任務分散到網絡中的多個節點(計算機或設備&…

字符串習題

單詞個數統計 原作: 輸入: 一行字符串。僅有空格和英文字母構成。 輸出: 英文字母個數letter_num 單詞個數word_num 出現最多的字母max_letter 出現最多的字母的出現次數max_letter_frequ 處理: 統計并輸出此句子英文字母…

解決火絨啟動時,報安全服務異常,無法保障計算機安全

1.找到控制面板-安全和維護-更改用戶賬戶控制設置 重啟啟動電腦解決。

python總結(1)

數據結構是以某種方式(如通過編號)組合起來的數據元素(如數、字符乃至其他數據結構)集合。在Python中,最基本的數據結構為序列(sequence)。序列中的每個元素都有編號,即其位置或索引,其中第一個元素的索引為0,第二個元素的索引為1…

NAT NAPT

NAT NAT(Network Address Translation,網絡地址轉換) 主要用于在不同網絡(如私有網絡和公共互聯網)之間進行 IP 地址轉換,解決IP 地址短缺問題,并提供一定的安全性。 IPv4 地址是 32 位&#xf…

快速排序(二叉樹的前序遞歸遍歷思想)

思路 之前我們從選擇排序,到選擇排序的穩定性優化,到冒泡排序,到插入排序,到插入排序的提前截止時間,到希爾排序,雖然逐步一直都在優化,但是時間復雜度還是N得平方,力扣提交的結果一…

Redis 面試篇

Redis相關面試題 緩存三劍客 面試官:什么是緩存穿透 ? 怎么解決 ? 緩存穿透是指查詢一個一定不存在的數據,如果從存儲層查不到數據則不寫入緩存,這將導致這個不存在的數據每次請求都要到 DB 去查詢,可能導致 DB 掛掉。這種情況…