当前位置:网站首页>使用Mock技术帮助提升测试效率的小tips,你知道几个?
使用Mock技术帮助提升测试效率的小tips,你知道几个?
2022-07-28 20:05:00 【叶赫那拉 赫敏】
Mock是什么?
我给你描述一下这几个场景,你看看是不是熟悉的呢?
测试一个业务模块,这个业务模块中有几个接口对接到了第三方,因为第三方延期交付,导致项目延期,我又背锅了
我想测试前端页面字体是不是有做兼容性处理,需要改相关字段的数据库,但是我又没有修改数据库的权限,我好愁呀
领导让我测试部署在某个机器上的软件,可是。。。机器都没有部署好,没办法测试呀
我测试的模块严重和其他模块有耦合,其他模块还没开发完成,我只能干等,导致最后测试延期了…绩效又打C了
这些都是我们在平时测试过程中,经常碰到的阻塞测试进度的问题,那有什么技术手段,可以解决这些问题,提升我们的测试效率呢?
先不要着急知道答案,大家可以看一下上面的这四个过程,其实都是我们的被测模块在向某一个依赖环境(第三方服务、后端接口、硬件设备、其他服务)发送请求的过程中,依赖环境出现了问题,导致影响我们的测试效率。
那如果我们把这个“拖后腿”的依赖环境直接替换,改成我们自己的一个服务接口,我们想让它返回什么就返回什么,测试起来,是不是就轻松多了?

那上面的这个场景,其实所使用的,就是我们接下来要教给大家的Mock技术。
如何使用Mock技术?
Mock的实现有多种方式,可以通过mitmproxy+python 实现深度定制的Mock,也可以通过fiddler或Charles这种比较简单的工具实现一些基础的Mock。
首先,我们先来看如何通过Charles实现Mock。在实现之前,先简单介绍一下Charles这个工具。Charles本身是一个很强大的代理工具, Charles 主要的功能包括:
支持SSL代理。可以抓取分析https的请求。
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
可以自动将json或xml数据格式化,方便查看。
当然了,本文的重点是在讲Mock技术,那接下来就看一下,Charles是如何实现Mock的吧。
通过Mock技术修改百度页面的效果
1.先保存接口返回数据,右键单击某接口->点击 SaveResponse ->文件后缀写上 .html



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


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



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


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

可能到这里,很多同学说,改数据库就可以实现了呀,但是改数据库有可能存在两个问题:
1、不是所有的测试都有数据库的修改权限。
2、有一些数据信息是直接从第三方接口获取的,测试也不可能有改第三方服务数据库的权限。
其实要实现上面这个测试需求是非常简单的,只要善用Mock工具,了解Mock的实现与配置原理,就能够轻松完成雪球股票界面的列表展示颜色是否会跟随股价的涨跌停进行变化,从而提升测试效率。

总结
当然,以上的小练习只是实现了Mock技术中的一个简单应用场景,至于如何解决第三方服务的依赖等其他更多的Mock技术的使用场景,以及更进阶的如何结合Mock技术实现一个数据工厂,大家可以来我们的《3天接口自动化测试实战训练营》试听了解哦~
边栏推荐
- Top level "redis notes", cache avalanche + breakdown + penetration + cluster + distributed lock, Nb
- LT7911D Type-C/DP转mipi 方案成熟可提供技术支持
- Leetcode 142. circular linked list II [knowledge points: speed pointer, hash table]
- Bully is filed for bankruptcy! The company has become a "Lao Lai", and the legal person is restricted from high consumption
- 两个全局变量__dirname和__filename 、fs模块常用功能进一步介绍
- 技术选型Rust——事后分析
- 世界肝炎日 | 基层也能享受三甲资源,智慧医疗系统如何解决“看病难”?
- HCIA综合实验(以华为eNSP为例)
- Apple M1 processor details: performance and energy efficiency have doubled, and Intel Core i9 is no match!
- Bus, protocol, specification, interface, data acquisition and control system in industrial communication field
猜你喜欢
![Leetcode interview question 02.07. Linked list intersection [knowledge points: Double pointers, stack]](/img/51/ec623bb609f5f57150e7244cf5f9b7.png)
Leetcode interview question 02.07. Linked list intersection [knowledge points: Double pointers, stack]

MySQL 是如何归档数据的呢?

Meeting notice of OA project (Query & whether to attend the meeting & feedback details)

Research on the recognition method of move function information of scientific paper abstract based on paragraph Bert CRF
![[英雄星球七月集训LeetCode解题日报] 第28日 动态规划](/img/79/bc763bb6f12c525454abda18be4265.png)
[英雄星球七月集训LeetCode解题日报] 第28日 动态规划

How to design workflow engine gracefully (glory Collection Edition)

基于多模态融合的非遗图片分类研究

【Bluetooth蓝牙开发】八、BLE协议之传输层

Versailles ceiling: "the monthly salary of two years after graduation is only 35K, which is really unpromising ~ ~"

技术选型Rust——事后分析
随机推荐
基于Paragraph-BERT-CRF的科技论文摘要语步功能信息识别方法研究
Have you ever seen this kind of dynamic programming -- the stock problem of state machine dynamic programming (Part 2)
NTP server time (view server time)
Baidu search is in line with expectations, but it involves the black hat strategy of the external chain. What is the reason?
聊一聊数据库的行存与列存
For the next generation chromebook, MediaTek launched new chipsets mt8192 and mt8195
Leetcode interview question 02.07. Linked list intersection [knowledge points: Double pointers, stack]
标准C语言学习总结10
Query Oracle view creation statement and how to insert data into the view [easy to understand]
LeetCode链表问题——142.环形链表II(一题一文学会链表)
详解visual studio 2015在局域网中远程调试程序
小霸王被申请破产!公司成“老赖” ,法人被限制高消费
Using El date picker to report errors in sub components
[Bluetooth Bluetooth development] VIII. Transmission layer of ble protocol
Edited by vimtutor
LT7911D Type-C/DP转mipi 方案成熟可提供技术支持
微星宝安工厂失火!官方回应:无人员受伤,产线不受影响!
LeetCode链表问题——面试题02.07.链表相交(一题一文学会链表)
物联网技术栈之网关技术
Cy3/cy5/cy5.5/cy7 fluorescent labeling antibody / protein Kit (10~100mg labeling amount)



