服务端测试开发必备技能:Mock测试

news2024/9/28 5:32:49

什么是mock测试

Mock 测试就是在测试活动中,对于某些不容易构造或者不容易获取的数据/场景,用一个Mock对象来创建以便测试的测试方法。

Mock测试常见场景

  • 无法控制第三方系统接口的返回,返回的数据不满足要求
  • 依赖的接口还未开发完成,就需要对被测系统进行测试

Mock测试的缺点

测试过程中如果大量使用Mock,mock测试的场景失去了真实性,可能会导致在后续的系统性测试时才发现bug,使得缺陷发现的较晚,可能会造成后续修复成本更大

Mock工具:Fiddler / Postman

01、实战

postman 创建一个mock server

步骤一:

在左上角有一个New,点开后会有下拉列表展示,选择里面的Mock Server

步骤二:

勾选Request-Body(请求内容)

步骤三:

填写mock测试的各个请求参数,之后点击Next下一步

步骤四:

创建mock server

  • 填写Mock服务的名称(可用中文)
  • 勾选Make this Mock server private,可以不勾选;如果勾选了,这个Mock服务就只能你自己私有访问,此时创建的Mock Service需要一个x-api-key,把生成的key放到header中,具体生成x-api-key后面会介绍
  • 选择环境,如果没有合适的环境可以选择no environment
  • 勾选 Save the mock server URL as an environment variable

步骤五:

点击here获取mock 接口密钥,登陆浏览器设置,然后点击close

黄色部分就是Mock服务器地址,这个mock server是postman在自己的服务器上为我们创建的,无论我们是否打开postman,我们都可以直接用这个地址来访问mock的API,如我们通过Jmeter也能对这个接口进行访问

如果需要对这个Mock服务创建API key,可以点击here打开一个浏览器页面,生成一个API key,(注意,这个key值只出现一次,复制好以后最好新建一个记事本粘进去),后面访问这个接口的时候,必须在请求头里带上 API key,才能访问成功,相当于一个接口鉴权的作用。

x-api-key获取地址: https://web.postman.co/settings/me/api-keys?

步骤六:

Mock服务创建成功

创建成功后回到postman主界面,在右侧collection集合出出现了一个以刚才mock server命名相同的collection,点击这个集合右上角的箭头,选择mock,出现mock server的地址。

这个{{url}}其实就是我们的Mock服务地址,鼠标放上去可以显示,如果使用postman进行测试,使用时地址栏内的{{url}}一定要带着,如果

使用其它工具如Jmeter,可以使用{{{url}}变量中具体的值,也即如上图中的https://3b84b4c3-de01-4016-83aa-60943c1984b8.mock.pstmn.io:在这个mock server地址,其后面路径名称以及层级均可自定义,但要记得设置对应的example并且保存后再运行。

步骤七:

修改Mock Server,如果需要修改Mock Server,点击进入Mock Server服务,点击右上角的Examples就可以修改了

选择环境,选择Examples,默认为default,如果仅仅要修改当前的Mock Service,则选择Default

如果要在此基础上新增Mock Service,则选择Add Example,新增或者修改mock service,并保存为新的mock service,注意接口地址中{{url}}/test/testdemo,前面要带上路径符号/

步骤八:

访问Mock服务,可以使用 postman 、jmeter等接口测试工具进行访问,这里选择使用postman进行访问

创建一个Http服务请求 “Add Request”,Request name可以命名为中文,保存

选择环境:点击右上角眼睛旁的下拉框选择环境,此处刚才创建Mock server时候新增了一个和mock server命名相同的的环境,选择环境后点击眼睛,还可以看到该环境下接口地址的具体信息

服务请求界面输入接口地址、请求方法、请求header和请求body等内容,点击save,点击send按钮,可查看服务请求和响应内容,此处响应的内容就是前面创建Mock服务定义的响应内容,响应成功状态码就是Mock服务定义的响应状态码,如:Status:200

创建一个Http服务请求 “Add Request”,也可以对步骤七中新增/修改的Mock Service(Example)发送服务请求,步骤同上

步骤九:

使用Jmeter访问Mock服务

备注:使用Jmeter进行接口测试不存在选择环境

步骤十:

其它-环境管理,对于一些无用的环境,可以删除

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1151184.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接入百度地图api

注册百度账号,进入百度地图百度地图开放平台 | 百度地图API SDK | 地图开发 点击开发文档,比如js开发选择javascript API,然后跟着向下走,官方文档挺详细 先获取账号与密钥 自用Referer设置 * 即可 复制AK密钥导入自己的html文件即…

MVCC(多版本并发控制)

一、什么是MVCC MVCC是为了解决数据库在不加锁的前提下提升并发性和读取效率的一种思想 数据库有已下几种并发情况 读-读:不会产生并发问题读-写:发生隔离性问题,可能导致脏读、幻读、不可重复度写-写:可能存在数据丢失 为了防…

京东科技埋点数据治理和平台建设实践 | 京东云技术团队

导读 本文核心内容聚焦为什么要埋点治理、埋点治理的方法论和实践、奇点一站式埋点管理平台的建设和创新功能。读者可以从全局角度深入了解埋点、埋点治理的整体思路和实践方法,落地的埋点工具和创新功能都有较高的实用参考价值。遵循埋点治理的方法论,…

sd模型测试之又纯又欲的Copax Anime XL动漫大模型

除了各种美女图外,AI绘画大模型中,最受欢迎的是动漫。 动漫又分好几种,幼儿向、热血向、成人向等。 之前我推荐了几个风格不同的动漫大模型,今天推荐一个成人向的动漫大模型:Copax Anime XL。 当然了,成…

One-to-N N-to-One: Two Advanced Backdoor Attacks Against Deep Learning Models

One-to-N & N-to-One: Two Advanced Backdoor Attacks Against Deep Learning Models----《一对N和N对一:针对深度学习模型的两种高级后门攻击》 1对N: 通过控制同一后门的不同强度触发多个后门 N对1: 只有当所有N个后门都满足时才会触发…

【JAVA学习笔记】54 - 集合 - Set类、HashSet类(难点)

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/set_ Set类 一、基本介绍 1.无序(添加和取出的顺序不一致) ,没有索引[后面演示] 2.不允许重复元素,所以最多包含一个null 3.JDK API中Set接口的实现类有: …

SQL BETWEEN运算符

SQL BETWEEN 运算符 BETWEEN运算符用于选取介于两个值之间的数据范围内的值。 BETWEEN运算符选择给定范围内的值。值可以是数字,文本或日期。 BETWEEN运算符是包含性的:包括开始和结束值,且开始值需小于结束值。 SQL BETWEEN 语法 SELECT …

【蓝桥杯选拔赛真题06】C++数字评级 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析

目录 C/C++数字评级 一、题目要求 1、编程实现 2、输入输出 二、算法分析 <

gma 2 教程(三)坐标参考系统:2.基准面/椭球体

安装 gma&#xff1a;pip install gma 地球是一个近似于椭球体的三维物体&#xff0c;而地球上的各种测量和计算都需要一个基准面来进行。基准面是一个虚拟的平面&#xff0c;用于测量和计算地球上的各种物理量。在地球科学中&#xff0c;基准面通常是一个参考椭球体&#xff0…

rabbitmq安装、基本使用

docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.12-management docker会自己下载&#xff0c;然后运行 进入docker&#xff1a; docker exec -it rabbitmq bash 进入容器&#xff0c;重启rabbitmq&#xff1a;rabbitmq-server restart 感觉所有的…

基于平衡优化器算法的无人机航迹规划-附代码

基于平衡优化器算法的无人机航迹规划 文章目录 基于平衡优化器算法的无人机航迹规划1.平衡优化器搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用平衡优化器算法来优化无人机航迹…

前端如何实现多种方式圆形可点击区域

前言 四种方式都可以实现在圆形区域内添加点击事件&#xff0c;选择哪种方式可以根据具体情况选择。其中使用canvas实现的方式可以更好地适用于需要绘制复杂图形的情况下。 方式一&#xff1a;border-radius 使用CSS的border-radius属性创建圆形区域&#xff0c;然后通过绑定点…

Spring Boot 3系列之一(初始化项目)

近期&#xff0c;JDK 21正式发布&#xff0c;而Spring Boot 3也推出已有一段时间。作为这两大技术领域的新一代标杆&#xff0c;它们带来了许多令人振奋的新功能和改进。尽管已有不少博客和文章对此进行了介绍&#xff0c;但对于我们这些身处一线的开发人员来说&#xff0c;有些…

Generalized Zero-Shot Learning With Multi-Channel Gaussian Mixture VAE

L D A _{DA} DA​最大化编码后两种特征分布之间的相似性 辅助信息 作者未提供代码

通过引入插件Grid Masschange实现批量修改交互网格数据

现状描述: 很多时候我们需要对交互式网格进行数据更新&#xff0c;单个或少量的数据还好&#xff0c;一旦数据量过大&#xff0c;APEX现有的原生手动输入就不能满足需求&#xff0c;既浪费人力又浪费时间&#xff0c;白白损失了劳动成本&#xff0c;应对这种情况&#xff0c;有…

flink 反压原理

背景 在flink中由于数据倾斜或者数据处理速率的不匹配&#xff0c;很容易引起反压&#xff0c;本文就看一下flink反压的原理 flink反压原理 flink全流程pineline的反压实现其实依赖于TaskManager之间的反压和TaskManager内部的反压来实现 1.TaskManager之间的反压 2.Task…

Linux指令【上】

目录 目录结构 ls cd stat touch mkdir whoami 查看当前帐号是谁 who 查看当前有哪些人在使用 pwd 当前的工作目录 目录结构 目录结构就是一颗多叉树的样子 路径 我们从 / 目录开始&#xff0c;定位一个叶子文件的…

【Holocubic简化修改版——基于STM32F405+ESP8266-12F:使用FreeRTOS和标准库】

一.简介 第一次看到Holobubic项目是稚晖君视频&#xff1a;【自制】如何制作一个赛博朋克风格的 百大UP奖杯 【软核】 但是稚晖君的项目是基于ESP32PICO-D4&#xff0c;因此我想尝试使用STM32复刻一个。实际上&#xff0c;使用STM32复刻Holocubic在CSDN上已经有一位博主发布了他…

vsCode安装CodeRunner插件输出中文乱码问题

1 vsCode下载 vcCode官网地址&#xff1a;https://code.visualstudio.com/ 2 安装CodeRunner 通过Ctrl Shift P 找到 settings找到code-runner.executorMap&#xff0c;在 settings.json 中加入 "code-runner.executorMap": {....."python": "s…