使用Mock技术帮助提升测试效率的小tips,你知道几个?

news2024/11/25 11:25:41

Mock是什么?

我给你描述一下这几个场景,你看看是不是熟悉的呢?

测试一个业务模块,这个业务模块中有几个接口对接到了第三方,因为第三方延期交付,导致项目延期,我又背锅了 

我想测试前端页面字体是不是有做兼容性处理,需要改相关字段的数据库,但是我又没有修改数据库的权限,我好愁呀

领导让我测试部署在某个机器上的软件,可是。。。机器都没有部署好,没办法测试呀 

我测试的模块严重和其他模块有耦合,其他模块还没开发完成,我只能干等,导致最后测试延期了…绩效又打C了 

这些都是我们在平时测试过程中,经常碰到的阻塞测试进度的问题,那有什么技术手段,可以解决这些问题,提升我们的测试效率呢?

> 霍格沃兹测试学院  TestingStudio

先不要着急知道答案,大家可以看一下上面的这四个过程,其实都是我们的被测模块在向某一个依赖环境(第三方服务、后端接口、硬件设备、其他服务)发送请求的过程中,依赖环境出现了问题,导致影响我们的测试效率。

那如果我们把这个“拖后腿”的依赖环境直接替换,改成我们自己的一个服务接口,我们想让它返回什么就返回什么,测试起来,是不是就轻松多了?

那上面的这个场景,其实所使用的,就是我们接下来要教给大家的Mock技术。

> 霍格沃兹测试学院  TestingStudio

如何使用Mock技术?

Mock的实现有多种方式,可以通过mitmproxy+python 实现深度定制的Mock,也可以通过fiddler或Charles这种比较简单的工具实现一些基础的Mock。

首先,我们先来看如何通过Charles实现Mock。在实现之前,先简单介绍一下Charles这个工具。Charles本身是一个很强大的代理工具, Charles 主要的功能包括:

  • 支持SSL代理。可以抓取分析https的请求。

  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

  • 支持重发网络请求,方便后端调试。

  • 支持修改网络请求参数。

  • 支持网络请求的截获并动态修改。

  • 可以自动将json或xml数据格式化,方便查看。

当然了,本文的重点是在讲Mock技术,那接下来就看一下,Charles是如何实现Mock的吧。

> 霍格沃兹测试学院  TestingStudio

通过Mock技术修改百度页面的效果

1.先保存接口返回数据,右键单击某接口->点击 SaveResponse ->文件后缀写上 .html

image1080×570 250 KB

image1080×570 220 KB

image1080×570 210 KB

2.对本地的 html 进行修改,将“百度一下”改为“霍格沃兹"

1080×472 211 KB

3.设置 Charles 进行 map local,右键点击 Map Local->进入 Edit Mapping ->点击 choose ->选择修改后的 html->点击 OK

1080×606 427 KB

1080×570 213 KB

4.此时再次请求百度,则可以看到“百度一下”变为了“霍格沃兹”

1080×570 94.9 KB

通过Mock技术修改股票的展示效果

上面这个案例是 Mock 技术相对比较简单的一个应用场景,那 Mock 技术是否可以在App应用上取得同样的效果呢?比如下图,我们要去测试雪球股票界面的列表展示颜色是否会跟随股价的涨跌停进行变化。

image827×1067 136 KB

> 霍格沃兹测试学院  TestingStudio

可能到这里,很多同学说,改数据库就可以实现了呀,但是改数据库有可能存在两个问题:

1、不是所有的测试都有数据库的修改权限。

2、有一些数据信息是直接从第三方接口获取的,测试也不可能有改第三方服务数据库的权限。

其实要实现上面这个测试需求是非常简单的,只要善用Mock工具,了解Mock的实现与配置原理,就能够轻松完成雪球股票界面的列表展示颜色是否会跟随股价的涨跌停进行变化,从而提升测试效率。

image818×632 58 KB

> 霍格沃兹测试学院  TestingStudio

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

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

相关文章

作为测试人员,你需要掌握哪些,常用软件测试工具?

前言 作为软件测试人员,你最常用到的测试工具都有哪些呢?本文总结了测试过程中常用的工具,希望对从业人员日常工作有所助益! 包含工具内容 测试管理工具 连接服务器 抓包工具 接口测试工具 app自动化工具 性能测试工具 持续集成…

[附源码]计算机毕业设计Node.js橙光公司网站设计论文(程序+LW)

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

nodejs+vue067高校 校园疫情防控系统

录 1 绪论 1 1.1 研究背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统关键技术 3 2.3 MYSQL数据库 4 2.4 B/S结构 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2经济可行性 5 3.1.3操作可行性 5 3.2 系统性能分析 5 3.3 …

Windows10下用Vscode配置OpenCV (解包即用版)

Windows10下用Vscode配置OpenCV (解包即用版) 维基百科: OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研究领域中免费…

三、详细功能

详细功能 1.去除不同数据库间重复的文献:Reference->Find Duplicates (1)找到4篇重复的文章:Keep this record可以一篇篇的保留、删除 (2)按Cancel再按ctrl找到所有重复: (3&am…

长达22643字的博客:自定义游戏三子棋超详细解说手把手式教学,人机大战,PVP玩家对战功能制作详解

🦒这个游戏相信大家都听过,三子棋,不就是井字棋吗?那么今天我们就来亲手制作一个三子棋游戏,实现人机“智能”大战以及玩家PVP对战。 🐒三子棋的基本功能构思 🦒面对一个较大的游戏程序我们要做…

(附源码)Springboot社区疫情防控管理系统 毕业设计 164621

Springboot 社区疫情防控管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对社区疫情…

校园生活互助网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字): 体智慧校园生活互助系统主要实现以下功能: (一)网站前台:关于我们、联系我们、公告信息、求助信…

DataGear 添加 Http 数据集是请求头 JSON 的格式说明

背景 玩了一下 DataGear ,添加了一个 Http 接口的数据集,由于目标接口请求必须包含 Token 信息,所以按照配置提示添加 JSON 格式的头信息时,想象成了 JSON 对象,结果预览请求始终报错。 DataGear 的后台异常信息&…

【JUC】JMM内存模型

JMM是什么 JMM是Java内存模型,也就是Java Memory Model,简称JMM,本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成…

Graphviz 排版思路 Graphviz 如何控制节点位置

有个画图需求是需要生成特定排版的关系图。 graphviz 对于一般情况都是自动排的,有时候会抽风,比如这种情况: 而我们想要这样: 对初学者提一下 ,如何实现 3 2 5 ,1467 从左到右排列呢?待会会顺…

HTML小游戏18 —— html5版街头霸王游戏(附完整源码)

💂 网站推荐:【神级源码资源网】【摸鱼小游戏】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬 免费且实用的计…

【Three.js】Three.js快速上手教程

1. Three.js简介 官网对 Three.js 的介绍非常简单:“Javascript 3D library”。 即:three.js是JavaScript编写的WebGL第三方库。提供了非常多的3D显示功能,是一个常见的web 3D库。 相关概念解释:three.js > webGL > openG…

QT QTabWidget 控件 使用详解

本文详细的介绍了QTabWidget控件的各种操作,例如:新建界面、设置页面名字、设置提示信息、设置页面激活、设置标题栏位置、设置页面关闭按钮、设置页面关闭按钮、获取页面下标、获取页面总数、清空所有页面、删除某个页面、设置拖拽移动、设置显示页面、…

全国职业技能大赛网络安全-金砖技能大赛——应急响应内存镜像分析(超详细解析)

全国职业技能大赛网络安全-金砖技能大赛——应急响应内存镜像分析(超详细解析) 背景:作为信息安全技术人员必须能够掌握内容镜像分析、重要数据恢复、 恶意文件分析等相关技能,利用这些技能我们能够第一时间分析相关恶意文件、 分…

美少女怒肝20天用C语言写出的排序集合

文章目录 排序的概念一、常见的排序算法二、代码实现总结排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在…

作为前端,你是否了解链表这种数据结构?

在面试中只要被问到React Hooks就常被问到为什么Hooks不能在循环和条件判断嵌套函数当中使用;相信很多人都知道标准答案,【因为声明的Hooks保存在链表当中】,但是你真的知道链表吗? 什么是链表 我们先看来看一个简单的单向链表结…

华为珍藏版:SpringBoot全优笔记,面面俱到太全了

前言 作为开发人员,对于Spring全家桶肯定是不陌生的,而来自于Spring大家族的Spring Boot,作为Spring团队提供的流行框架,它的存在解决的Spring框架使用较为繁琐的问题,所以掌握SpringBoot是精通Spring必不可少的一个过…

[附源码]Python计算机毕业设计Django血库管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

[附源码]计算机毕业设计Node.js-Bigbaby美食网站(程序+LW)

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…