使用Mock技术帮助提升测试效率的小tips,你知道几个?
Mock是什么?
我给你描述一下这几个场景,你看看是不是熟悉的呢?
测试一个业务模块,这个业务模块中有几个接口对接到了第三方,因为第三方延期交付,导致项目延期,我又背锅了 😵
我想测试前端页面字体是不是有做兼容性处理,需要改相关字段的数据库,但是我又没有修改数据库的权限,我好愁呀😔
领导让我测试部署在某个机器上的软件,可是。。。机器都没有部署好,没办法测试呀 🙃
我测试的模块严重和其他模块有耦合,其他模块还没开发完成,我只能干等,导致最后测试延期了…绩效又打C了 😭
这些都是我们在平时测试过程中,经常碰到的阻塞测试进度的问题,那有什么技术手段,可以解决这些问题,提升我们的测试效率呢?
先不要着急知道答案,大家可以看一下上面的这四个过程,其实都是我们的被测模块在向某一个依赖环境(第三方服务、后端接口、硬件设备、其他服务)发送请求的过程中,依赖环境出现了问题,导致影响我们的测试效率。
那如果我们把这个“拖后腿”的依赖环境直接替换,改成我们自己的一个服务接口,我们想让它返回什么就返回什么,测试起来,是不是就轻松多了?
那上面的这个场景,其实所使用的,就是我们接下来要教给大家的Mock技术。
如何使用Mock技术?
Mock的实现有多种方式,可以通过mitmproxy+python 实现深度定制的Mock,也可以通过fiddler或Charles这种比较简单的工具实现一些基础的Mock。
首先,我们先来看如何通过Charles实现Mock。在实现之前,先简单介绍一下Charles这个工具。Charles本身是一个很强大的代理工具, Charles 主要的功能包括:
支持SSL代理。可以抓取分析https的请求。
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
可以自动将json或xml数据格式化,方便查看。
当然了,本文的重点是在讲Mock技术,那接下来就看一下,Charles是如何实现Mock的吧。
注意: 以下操作默认已经安装 Charles 并且设置好信任证书,可以成功代理。
通过Mock技术修改百度页面的效果
1.先保存接口返回数据,右键单击某接口->点击 SaveResponse ->文件后缀写上 .html
2.对本地的 html 进行修改,将“百度一下”改为“霍格沃兹”
3.设置 Charles 进行 map local,右键点击 Map Local->进入 Edit Mapping ->点击 choose ->选择修改后的 html->点击 OK
4.此时再次请求百度,则可以看到“百度一下”变为了“霍格沃兹”
通过Mock技术修改股票的展示效果
上面这个案例是 Mock 技术相对比较简单的一个应用场景,那 Mock 技术是否可以在App应用上取得同样的效果呢?比如下图,我们要去测试雪球股票界面的列表展示颜色是否会跟随股价的涨跌停进行变化。
可能到这里,很多同学说,改数据库就可以实现了呀,但是改数据库有可能存在两个问题:
不是所有的测试都有数据库的修改权限。
有一些数据信息是直接从第三方接口获取的,测试也不可能有改第三方服务数据库的权限。
其实要实现上面这个测试需求是非常简单的,只要善用Mock工具,了解Mock的实现与配置原理,就能够轻松完成雪球股票界面的列表展示颜色是否会跟随股价的涨跌停进行变化,从而提升测试效率。
总结
当然,以上的小练习只是实现了Mock技术中的一个简单应用场景
最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
软件测试工程师自学教程:
这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】
软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.
美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看
软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试
相关文章
- UI节点对运行效率的影响
- 使用Tomcat Native提升Tomcat IO效率
- 你研究过单例么?这样写单例效率最高.
- 如何评价一个算法的效率--时空复杂度概念及常用查找、排序算法复杂度
- 日常总结:大数量级表多层JOIN连接查询效率慢问题的解决方案
- 效率神器--Alfred
- 测试简单for循环的效率
- 如何实现分库分表,有哪些策略,为什么能提高查询效率
- (待续) 强化学习——如何提升样本效率 ( DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!)
- 五十个小技巧提高PHP执行效率(二)
- 浅析Stream是如何提高遍历集合效率的:Stream产生背景(分库分表后需要合并传统效率不理想)、Stream优化遍历思想-操作分类:中间操作(分为无状态/有状态)只做记录/终结操作(分为短路/非短路)实现计算、操作叠加、并行处理的思想(分片/合并)、如何合理使用Stream(单核数据量小用常规迭代/多核数据量大用stream)
- 高性能WEB开发:Javascript自身执行效率
- 英大学新型锂电池可将光伏系统储能效率提至95%
- 电话会议效率太低?让AR技术帮你解决问题
- Android与server通信的方法之中的一个(json)效率不高安全性不好
- 提高数据中心效率需要透明管理