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

简介: 使用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的吧。

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

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




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



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



1 08

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



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

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


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

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

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

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


总结

当然,以上的小练习只是实现了Mock技术中的一个简单应用场景,至于如何解决第三方服务的依赖等其他更多的Mock技术的使用场景,以及更进阶的如何结合Mock技术实现一个数据工厂,大家可以来我们的《3天接口自动化测试实战训练营》试听了解哦~

相关文章
|
7天前
|
机器学习/深度学习 敏捷开发 人工智能
探索自动化测试的前沿技术与实践挑战
【7月更文挑战第8天】随着信息技术的飞速发展,软件测试领域正经历着前所未有的变革。自动化测试作为提升测试效率、确保软件质量的重要手段,其前沿技术与实践挑战备受关注。本文深入探讨了自动化测试的最新进展,包括人工智能在测试用例生成中的应用、持续集成/持续部署(CI/CD)流程中的自动化策略、以及云测试平台的兴起。同时,文章分析了自动化测试实施过程中遇到的主要挑战,如环境配置的复杂性、测试用例的维护问题和跨平台测试的困难,并提供了相应的解决策略。通过案例分析,展示了成功实施自动化测试的关键因素,为软件测试专业人员提供了宝贵的参考和启示。
21 2
|
1天前
|
机器学习/深度学习 运维 算法
Doping:使用精心设计的合成数据测试和评估异常检测器的技术
在这篇文章中,我们将探讨测试和评估异常检测器的问题(这是一个众所周知的难题),并提出了一种解决方案被称为“Doping”方法。使用Doping方法,真实数据行会被(通常是)随机修改,修改的方式是确保它们在某些方面可能成为异常值,这时应该被异常检测器检测到。然后通过评估检测器检测Doping记录的效果来评估这些检测器。
10 0
|
5天前
|
机器学习/深度学习 敏捷开发 人工智能
现代软件测试技术的演进与应用
随着软件行业的快速发展,软件测试技术也在不断演进和创新。本文探讨了现代软件测试技术的最新趋势和应用,包括自动化测试、持续集成与持续交付、AI在测试中的应用等方面。通过分析这些技术的发展,我们可以更好地理解如何提高软件质量、加速交付,并提升开发团队的效率和创新能力。 【7月更文挑战第10天】
10 3
|
5天前
|
前端开发
什么是 Mock 测试?
Mock 是在前后端分离开发中,用于模拟后端数据的工具,让前端能提前开发而无需等待真实接口。它的重要性在于加速协同开发,避免因数据延迟导致的阻塞。通过工具如 Apifox,可以创建请求,设定 Mock 参数和测试脚本,进行 Mock 测试以确保数据符合预期。了解 Mock.js 语法有助于更好地进行 Mock 测试。
|
8天前
|
安全 物联网 物联网安全
物联网设备的安全性评估与测试:技术深度解析
【7月更文挑战第7天】物联网设备的安全性评估与测试是保障物联网系统安全运行的重要环节。通过实施全面的安全性评估与测试,可以发现并修复设备中存在的安全漏洞和风险,提高整体安全防护能力。然而,由于物联网设备的多样性和复杂性以及安全标准与监管的缺失等挑战,测试工作需要不断创新和优化。未来,随着技术的不断进步和实践的深入,物联网设备的安全性评估与测试将更加完善和高效。
|
12天前
|
安全 测试技术 网络安全
网络安全中的渗透测试与风险评估:技术深度解析
【7月更文挑战第3天】在网络安全领域,渗透测试和风险评估是两种不可或缺的技术手段。通过模拟黑客的攻击手段来发现系统中的安全漏洞,以及通过系统性的方法来识别和评估潜在的风险和威胁,两者共同为组织提供了全面的网络安全保障。随着技术的不断发展和网络环境的日益复杂,渗透测试和风险评估的重要性将日益凸显。因此,网络安全从业者应不断学习和掌握这两种技术,以应对日益严峻的网络安全挑战。
|
4天前
|
机器学习/深度学习 人工智能 运维
探索自动化测试的前沿技术与实践
随着软件行业的快速发展,传统的手动测试方法已难以满足日益增长的质量保证需求。自动化测试作为提高测试效率和准确性的关键手段,正逐渐成为软件开发过程中不可或缺的一部分。本文将深入探讨自动化测试的最新技术趋势,分析其在现代软件开发生命周期中的应用,并提供一系列实施策略,旨在帮助读者理解并掌握自动化测试的核心技术和方法。
|
11天前
|
数据采集 监控 数据可视化
利用LabVIEW和数字孪生技术实现PCB电路板测试
利用LabVIEW和数字孪生技术实现PCB电路板测试
12 0
|
15天前
|
测试技术
探索软件测试中的模拟与仿真技术
【6月更文挑战第29天】在软件测试领域,模拟和仿真技术是提升测试效率、确保产品质量的重要手段。本文将深入探讨模拟与仿真技术的定义、应用场景、实施步骤及其对软件测试流程的影响,旨在为读者提供一套系统的理论框架和实践指南,以促进其在软件测试工作中的有效运用。
|
16天前
|
机器学习/深度学习 人工智能 监控
探索自动化测试的前沿技术与实践
在软件开发周期中,自动化测试已成为确保软件质量和效率的关键因素。本文旨在探讨自动化测试的最新技术和实践方法,通过分析当前行业内的最佳实践和面临的挑战,提供一系列针对性的策略和建议。我们将深入讨论如何有效集成自动化工具、优化测试流程、以及提升测试覆盖率和精确度。文章结合了权威的数据支持和技术分析,旨在为读者提供实用的指导和见解,帮助他们在不断变化的技术环境中保持竞争力。
15 0