使用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:文件操作
目录 提示:以下指令均在Xshell 7 中进行 linux的理念 一、echo echo "字符串" 二、输出重定向 > > [文件] echo "字符串" > [文件] echo "字符串" > > [文件] 制作大文件 三、< 输入重定向与ca…...

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

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

ChatGPT到底是如何运作?
自从2022年11月30日发布以来,ChatGPT一直占据着科技届的头条位置,随着苹果的创新能力下降,ChatGPT不断给大家带来震撼,2023年11月7日,首届OpenAI开发者大会在洛杉矶举行,业界普遍认为,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
解决:ValueError: must have exactly one of create/read/write/append mode 文章目录 解决:ValueError: must have exactly one of create/read/write/append mode背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在使用…...
大数据-之LibrA数据库系统告警处理(ALM-37014 Gaussdb进程锁文件已经存在)
告警解释 当集群中的CN实例或者DN实例锁文件创建失败时,产生该告警。 告警属性 告警ID 告警级别 可自动清除 37014 严重 是 告警参数 参数名称 参数含义 ServiceName 产生告警的服务名称 RoleName 产生告警的角色名称 HostName 产生告警的主机名 I…...
STM32 基础知识
1. STM32微控制器的核心特性是什么? STM32微控制器是基于ARM Cortex-M 处理器 , 它具有高性能处理能力和低功耗的特性 , 适合用于嵌入式系统STM32系列具有多种多样的内存大小和丰富的内置外设选项,包括 多通道ADC , 定…...

JVM——产生内存溢出原因
目录 1.产生内存溢出原因一 :代码中的内存泄漏1.案例1:equals()和hashCode()导致的内存泄漏问题:**正常情况**:**异常情况:**解决方案: 2.案例2:内部类引用外部类问题:解决方案&…...
关于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 系统调用都用于打开文件,但它们有一些区别。 一、函数原型 open 系统调用的原型 #include <fcntl.h>int open(const char *pathname, int flags, mode_t mode);pathname 是要打开的文件路径flags 是打开文件的标志mode 是文件的…...

人工智能与供应链行业融合:预测算法的通用化与实战化
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 让我们一起深入探索人工智能与供应链的融合,以及预测算法在实际应用中的价值!🔍🚀 文章目录 前言供应链预测算法的基本流程统计学习模型与机…...

Cytoscape学习教程
写在前面 今天分享的内容是自己遇到问题后,咨询社群里面的同学,帮忙解决的总结。 关于Cytoscape,对于做组学或生物信息学的同学基本是陌生的,可能有的同学用这个软件作图是非常溜的,做出来的网络图也是十分的好看,“可玩性”很高,就像前面分享的aPEAR包一样aPEAR包绘制…...
computed和watch相关
Computed本质是一个具备缓存的watcher,依赖的属性发生变化就会更新视图。 适用于计算比较消耗性能的计算场景。当表达式过于复杂时,在模板中放入过多逻辑会让模板难以维护,可以将复杂的逻辑放入计算属性中处理 computed擅长处理:一…...

反思一次效能提升
前天与一个大佬交流。想起自己在6年多前在团队里做的一次小小的效能提升。 改进前 在同一个产品团队,同时有前端工程师和后端工程师。他们经常需要共同协作完成features。 前端是一个传统的多页应用。前端渲染是由后端的velocity模板引擎实现的。 打包后,…...
ElasticSearch之cat indices API
命令样例如下: curl -X GET "https://localhost:9200/_cat/indices?vtrue&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"执行结果输出如下: health status index uuid …...
Composer update 跳过指定依赖
在使用Compose进PHP 依赖管理只时,有时候我们可能希望忽略版本批配,即使依赖项的景新版本已经发布,也然续使用当前的乐本。这种情况下,我们可以使用Composer的 --ignore-platform-reqs 选项来实现 可以使用--ignore-platform-req…...
@RequestMapping详解:请求映射规则
目录 请求-相应模式: 设置请求映射规则RequestMapping POST 请求: GET 请求 请求-相应模式: 前端作为客户端向后端发送请求(请求可以分为请求头和请求体两部分,请求头包含了一些元数据信息,如请求方式、…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)
说明: 想象一下,你正在用eNSP搭建一个虚拟的网络世界,里面有虚拟的路由器、交换机、电脑(PC)等等。这些设备都在你的电脑里面“运行”,它们之间可以互相通信,就像一个封闭的小王国。 但是&#…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...