当前位置: 首页 > news >正文

使用Postman创建Mock Server

这篇文章将教会大家如何利用 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 或帐户使用页面查看你的使用限制。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

使用Postman创建Mock Server

这篇文章将教会大家如何利用 Postman,通过 Mock 的方式测试我们的 API。 什么是 Mock Mock 是一项特殊的测试技巧,可以在没有依赖项的情况下进行单元测试。通常情况下,Mock 与其他方法的主要区别就是,用于取代代码依赖项的模拟对…...

【古月居《ros入门21讲》学习笔记】15_ROS中的坐标系管理系统

目录 说明: 1. 机器人中的坐标变换 tf功能包能干什么? tf坐标变换如何实现 2. 小海龟跟随实验 安装 ros-melodic-turtle-tf 实验命令 运行效果 说明: 1. 本系列学习笔记基于B站:古月居《ROS入门21讲》课程,且使…...

初始linux:文件操作

目录 提示&#xff1a;以下指令均在Xshell 7 中进行 linux的理念 一、echo echo "字符串" 二、输出重定向 > > [文件] echo "字符串" > [文件] echo "字符串" > > [文件] 制作大文件 三、< 输入重定向与ca…...

iOS上传ipa使用可视化工具Transporter

文章目录 前言一、Transporter二、Appuploader三、iTMSTransporter总结 前言 最近为了让非开发人员上传IPA文件&#xff0c;特意找了一些方法&#xff0c;至于以前的ApplicationUploader已经不能用了&#xff0c;下面介绍两个工具可以上传IPA包。 一、Transporter 1、操作简单…...

解读《陆奇最新演讲实录—我的大模型世界观》

腾讯科技频道记者张小珺一篇《陆奇最新演讲实录—我的大模型世界观》刷爆朋友圈。文章知识点丰富、字里行间处处流淌着创业方法论和AI应用商机&#xff0c;含金量极高&#xff01; PS&#xff1a;一家之言、不求苟同。如有不爽之处&#xff0c;欢迎来 找我。 腾讯新闻原文&am…...

ChatGPT到底是如何运作?

自从2022年11月30日发布以来&#xff0c;ChatGPT一直占据着科技届的头条位置&#xff0c;随着苹果的创新能力下降&#xff0c;ChatGPT不断给大家带来震撼&#xff0c;2023年11月7日&#xff0c;首届OpenAI开发者大会在洛杉矶举行&#xff0c;业界普遍认为&#xff0c;OpenAI的开…...

学习Java第57天,Servlet的基本使用步骤

步骤1 开发一个web类型的module 步骤2 开发一个UserServlet public class UserServlet extends HttpServlet {Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取请求中的参数String usern…...

解决:ValueError: must have exactly one of create/read/write/append mode

解决&#xff1a;ValueError: must have exactly one of create/read/write/append mode 文章目录 解决&#xff1a;ValueError: must have exactly one of create/read/write/append mode背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用…...

大数据-之LibrA数据库系统告警处理(ALM-37014 Gaussdb进程锁文件已经存在)

告警解释 当集群中的CN实例或者DN实例锁文件创建失败时&#xff0c;产生该告警。 告警属性 告警ID 告警级别 可自动清除 37014 严重 是 告警参数 参数名称 参数含义 ServiceName 产生告警的服务名称 RoleName 产生告警的角色名称 HostName 产生告警的主机名 I…...

STM32 基础知识

1. STM32微控制器的核心特性是什么&#xff1f; STM32微控制器是基于ARM Cortex-M 处理器 &#xff0c; 它具有高性能处理能力和低功耗的特性 &#xff0c; 适合用于嵌入式系统STM32系列具有多种多样的内存大小和丰富的内置外设选项&#xff0c;包括 多通道ADC &#xff0c; 定…...

JVM——产生内存溢出原因

目录 1.产生内存溢出原因一 &#xff1a;代码中的内存泄漏1.案例1&#xff1a;equals()和hashCode()导致的内存泄漏问题&#xff1a;**正常情况**&#xff1a;**异常情况&#xff1a;**解决方案&#xff1a; 2.案例2&#xff1a;内部类引用外部类问题&#xff1a;解决方案&…...

关于X86机器上运行GnuCobol的研究

1.安装GnuCobol 当前的稳定版本是 3.1.2,已经在各种平台上进行了广泛测试,并已投入商用。 下载地址为: https://phoenixnap.dl.sourceforge.net/project/gnucobol/gnucobol/3.1/gnucobol- 3.1.2.tar.bz2 1)上传压缩包至x86服务器; 2)通过tar -xvf gnucobol-3.1.2.tar.bz2…...

open与openat的区别

Linux 中的 open 和 openat 系统调用都用于打开文件&#xff0c;但它们有一些区别。 一、函数原型 open 系统调用的原型 #include <fcntl.h>int open(const char *pathname, int flags, mode_t mode);pathname 是要打开的文件路径flags 是打开文件的标志mode 是文件的…...

人工智能与供应链行业融合:预测算法的通用化与实战化

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 让我们一起深入探索人工智能与供应链的融合&#xff0c;以及预测算法在实际应用中的价值&#xff01;&#x1f50d;&#x1f680; 文章目录 前言供应链预测算法的基本流程统计学习模型与机…...

Cytoscape学习教程

写在前面 今天分享的内容是自己遇到问题后,咨询社群里面的同学,帮忙解决的总结。 关于Cytoscape,对于做组学或生物信息学的同学基本是陌生的,可能有的同学用这个软件作图是非常溜的,做出来的网络图也是十分的好看,“可玩性”很高,就像前面分享的aPEAR包一样aPEAR包绘制…...

computed和watch相关

Computed本质是一个具备缓存的watcher&#xff0c;依赖的属性发生变化就会更新视图。 适用于计算比较消耗性能的计算场景。当表达式过于复杂时&#xff0c;在模板中放入过多逻辑会让模板难以维护&#xff0c;可以将复杂的逻辑放入计算属性中处理 computed擅长处理&#xff1a;一…...

反思一次效能提升

前天与一个大佬交流。想起自己在6年多前在团队里做的一次小小的效能提升。 改进前 在同一个产品团队&#xff0c;同时有前端工程师和后端工程师。他们经常需要共同协作完成features。 前端是一个传统的多页应用。前端渲染是由后端的velocity模板引擎实现的。 打包后&#xff0c…...

ElasticSearch之cat indices API

命令样例如下&#xff1a; curl -X GET "https://localhost:9200/_cat/indices?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下&#xff1a; health status index uuid …...

Composer update 跳过指定依赖

在使用Compose进PHP 依赖管理只时&#xff0c;有时候我们可能希望忽略版本批配&#xff0c;即使依赖项的景新版本已经发布&#xff0c;也然续使用当前的乐本。这种情况下&#xff0c;我们可以使用Composer的 --ignore-platform-reqs 选项来实现 可以使用--ignore-platform-req…...

@RequestMapping详解:请求映射规则

目录 请求-相应模式&#xff1a; 设置请求映射规则RequestMapping POST 请求&#xff1a; GET 请求 请求-相应模式&#xff1a; 前端作为客户端向后端发送请求&#xff08;请求可以分为请求头和请求体两部分&#xff0c;请求头包含了一些元数据信息&#xff0c;如请求方式、…...

从BOM到MES:制造业核心系统全解析,新手也能看懂

从BOM到MES&#xff1a;制造业核心系统全解析&#xff0c;新手也能看懂 走进任何一家现代化制造企业的生产车间&#xff0c;你会看到的不再是传统印象中机器轰鸣、工人忙碌的简单场景&#xff0c;而是由各种数字化系统精密协调运作的智能生态。对于刚接触制造业的新人来说&…...

2026年西安市莲湖区Geo搜索优化排名,专业企业究竟谁能拔得头筹?

在数字化浪潮席卷的今天&#xff0c;Geo搜索优化&#xff08;地理搜索优化&#xff09;对于企业的重要性不言而喻。尤其在西安市莲湖区&#xff0c;企业们对于提升自身在Geo搜索中的排名需求愈发迫切。究竟哪家专业企业能够在2026年的竞争中脱颖而出&#xff0c;成为Geo搜索优化…...

如何利用Lv值实现三级降帧

目录 一、核心逻辑&#xff08; 二、5 种帧率 → 精简为 3 级 三、LV 阈值划分 四、代码实现 一、核心逻辑 亮度越暗 → LV 越小 → 帧率越低亮度越亮 → LV 越大 → 帧率越高 三级降帧就是&#xff1a; 高亮度&#xff1a;高帧率&#xff08;30fps&#xff09;中亮度&am…...

避坑指南:Qt Modbus TCP开发中自动刷新与写入冲突的排查与修复

Qt Modbus TCP开发实战&#xff1a;自动刷新与写入冲突的深度解决方案 在工业控制系统的HMI界面开发中&#xff0c;实时数据刷新与用户交互操作的平衡是个经典难题。上周调试一个智能仓储监控系统时&#xff0c;就遇到了这样的场景&#xff1a;当PLC寄存器数据以500ms间隔自动刷…...

第十四届中国电子信息博览会(CITE2026)即将开幕,科达嘉邀您观展!

第十四届中国电子信息博览会&#xff08;CITE2026&#xff09;将于2026年4月9-11日在深圳会展中心&#xff08;福田&#xff09;盛大启幕。本次展会聚焦AI应用、具身智能、AI大模型/智算中心、低空经济、集成电路、电子元器件等领域&#xff0c;汇聚1000余家行业领军企业参展。…...

OpenClaw飞书机器人集成:Kimi-VL-A3B-Thinking多模态问答助手

OpenClaw飞书机器人集成&#xff1a;Kimi-VL-A3B-Thinking多模态问答助手 1. 为什么选择OpenClaw飞书Kimi-VL组合&#xff1f; 去年我在内容团队工作时&#xff0c;经常遇到这样的场景&#xff1a;设计师发来一张海报初稿&#xff0c;我们需要快速判断文案与图像的匹配度&…...

通过 Nanobot 源码学习架构 ---(4)SubAgent

OpenClaw 应该有40万行代码&#xff0c;阅读理解起来难度过大&#xff0c;因此&#xff0c;本系列通过Nanobot来学习 OpenClaw 的特色。Nanobot是由香港大学数据科学实验室(HKUDS)开源的超轻量级个人 AI 助手框架&#xff0c;定位为"Ultra-Lightweight OpenClaw"。非…...

AI 驱动网络钓鱼主导数据泄露的机理、风险与防御体系研究 —— 基于阿联酋预警事件的实证分析

摘要 2026 年 4 月&#xff0c;阿联酋网络安全委员会公开预警&#xff0c;AI 增强型网络钓鱼已导致境内超90% 的网络数据泄露事件&#xff0c;日均产生约 34 亿封欺诈邮件&#xff0c;传统防御机制全面承压。本文以该权威预警为核心依据&#xff0c;系统解构生成式 AI 重构网络…...

基于NodeJS与CODESYS的OPC UA通信实战:从零搭建工业数据桥梁

1. 为什么需要NodeJS与CODESYS的OPC UA通信&#xff1f; 在工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;就像工厂的"大脑"&#xff0c;负责控制各种设备运行。而CODESYS则是开发PLC程序的"瑞士军刀"&#xff0c;几乎支持所有主…...

如何优化Mars项目中的IndexedDB索引设计:提升移动端Web查询性能的完整指南

如何优化Mars项目中的IndexedDB索引设计&#xff1a;提升移动端Web查询性能的完整指南 【免费下载链接】Mars 腾讯移动 Web 前端知识库 项目地址: https://gitcode.com/gh_mirrors/mar/Mars Mars作为腾讯移动Web前端知识库&#xff0c;提供了丰富的移动端Web开发解决方案…...