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

什么是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.mzph.cn/news/772558.shtml

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

相关文章

linux 离线安装 dotnet tool

1. 在官网下载对应的nuget包,比如: dotnet-dump NuGet Gallery | dotnet-dump 3.1.57502 注意文件名称: dotnet-dump.3.1.57502.nupkg 我犯了一个错误,下载比较慢,然后通过迅雷来下载,结果没有后缀名称. 2. 然后拷贝到linux上,比如: 拷贝到dp文件夹下, 在dp文件夹上级执行命…

mfc140.dll丢失的解决方法,快速修复win10系统dll问题

在Windows 10操作系统环境下,如果发现系统中关键的动态链接库文件mfc140.dll丢失,可能会引发一系列运行问题。mfc140.dll是Microsoft Foundation Class Library(微软基础类库)的重要组成部分,对于许多基于该库开发的应…

代码随想录算法训练营第三十五天|860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球

860. 柠檬水找零 题目 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾…

【干货】无源滤波器设计讲解,工作原理+设计步骤

今天给大家分享的是:无源模拟滤波器针对很多入门小白不懂滤波器设计,一些老工程师上班很多年有的也不懂得总结知识点,以及想学习不知道怎么系统学习的这一类人群,前方知识点来袭,请君放心食用~ 在信号处理领域&#x…

java的一些内部小知识,类与对象的关系

目录 1. java2. 类与对象的关系 1. java test.java ---- javac --> Test.class ---- java-----> 内存 ----> cpu 源文件 二进制代码 所有正在运行的软件都在内存中有自己的内存空间 jvm —>运行java程序的,java虚拟机 main(); // 内部调用run()run(i…

苍穹外卖项目笔记

软件开发流程 需求分析:说明书和原型 设计:UI,数据库,接口设计 编码:项目代码,单元测试 测试:测试用例,测试报告 上线运维:软件环境安装,配置 软件环境…

Mybatis中条件传入多个参数时,如何处理

entity&#xff1a; Data AllArgsConstructor NoArgsConstructor public class User {private Integer id;private String username;private String password;private String phone;private String address; }dao接口&#xff1a; public interface UserDAO {List<User>…

基于vue+element+springboot+uniapp开发的智慧城管源码,java智慧城市管理综合执法系统源码

智慧城管源码&#xff0c;智慧执法&#xff0c;数字化城市管理综合执法系统源码 智慧城管系统充分利用物联网、云计算、信息融合、网络通讯、数据分析与挖掘等技术&#xff0c;对城市管理进行全方位覆盖。它通过建立城市综合管理平台&#xff0c;将城市的信息和管理资源有机结合…

错误 LNK1104 无法打开文件“mfc140.lib”

如图&#xff0c;编译一个别人已有的项目&#xff0c;我的编译报错为&#xff1a; 但是我所有文件夹全局搜索了一下&#xff0c;这个文件是存在的。但是当前项目访问不到。 更改方法&#xff1a;项目->属性->配置属性->VC目录->库目录 全局搜索找到mfc140.lib的…

【LeetCode 算法专题突破】定长滑动窗口

文章目录 前言[1456. 定长子串中元音的最大数目](https://leetcode.cn/problems/maximum-number-of-vowels-in-a-substring-of-given-length/)题目描述&#xff1a;难度分1263代码与解题思路代码复盘 [2269. 找到一个数字的 K 美丽值](https://leetcode.cn/problems/find-the-k…

NAT---网络地址转换技术

Network Address Translation 1、起源&#xff1a;ip地址不够用 2、作用&#xff1a;让私网地址映射成公网地址&#xff0c;进而访问网络。 3、私网Ip地址的范围&#xff1a; A类&#xff1a;10.0.0.0-10.255.255.255 B类&#xff1a;172.16.0.0-172.31.255.255 C类&…

码垛机与人工搬运:效率与安全性的比较分析

在现代包装行业中&#xff0c;泡沫箱因其轻便和保温特性被广泛用于商品的包装与运输。随着自动化技术的不断发展&#xff0c;码垛机成为提升泡沫箱生产效率、降低劳动强度的关键技术。本文旨在比较码垛机与人工码垛在泡沫箱生产中的优势&#xff0c;并探讨自动化码垛的未来发展…

Springboot快速整合bootstrap-table使用,接口对接

这个表格加持还是不错了&#xff0c;自带了全局搜索&#xff0c;分页&#xff0c;数据导出&#xff0c;卡片视图&#xff0c;等&#xff0c;本次整合添加了数据添加弹窗和编辑数据回显弹窗&#xff0c;附完整页面代码&#xff0c;只需要拿过来替换自己实际的接口即可。 效果图 …

鸿蒙实战开发-如何通过拖动滑块调节应用内字体大小

介绍 本篇Codelab将介绍如何使用基础组件Slider&#xff0c;通过拖动滑块调节应用内字体大小。要求完成以下功能&#xff1a; 实现两个页面的UX&#xff1a;主页面和字体大小调节页面。拖动滑块改变字体大小系数&#xff0c;列表页和调节页面字体大小同步变化。往右拖动滑块字…

ppp验证实验

实际操作图 1&#xff0c;IP划分分配 [r1]interface Serial 4/0/0 [r1-Serial4/0/0]ip add 192.168.1.1 24 [r2]interface Serial 4/0/0 [r2-Serial4/0/0]ip address 192.168.1.2 24 [r2]int Mp-group 0/0/0 [r2-Mp-group0/0/0]ip add 192.168.2.1 24 [r3]int Mp-group 0/…

Xcode Launching “XXX“ is taking longer than expected

文章目录 1.问题2.如何进入iOS DeviceSupport目录3.解决方法4.参考博客 1.问题 LLDB is likely reading from device memory to resolve symbols 2.如何进入iOS DeviceSupport目录 3.解决方法 进入iOS DeviceSupport目录&#xff0c;删除该真机对应的架构文件&#xff08;比如…

QT作业day3

1、使用手动连接&#xff0c;将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0c;密码是…

JMeter 如何并发执行 Python 脚本

要在JMeter中并发执行Python脚本&#xff0c;可以使用Jython脚本或通过调用外部Python脚本的方式实现。 使用Jython脚本并发执行Python脚本的步骤&#xff1a; 1、创建一个线程组&#xff1a;在JMeter界面中&#xff0c;右键点击测试计划&#xff0c;选择 “添加” -> “线…

c语言文件操作(下)

目录 1.文件的随机读写1.1 fseek1.2 ftell1.3 rewind 2. 文件结束的判定2.1 文本文件读取结束的判断2.2 二进制文件读取结束的判断 3. 文件缓冲区 1.文件的随机读写 1.1 fseek 根据⽂件指针的位置和偏移量来定位⽂件指针。 函数原型&#xff1a; int fseek (FILE * stream,…

Springboot+vue的企业质量管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的企业质量管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09…