管理平台接口文档,优化业务流程的灵魂之匙
470
2022-09-08
本文关于Mock测试是什么?为什么要进行Mock测试?
客户要求进行完整的产品展示,人员和时间都有限,来不及开发后端服务。
工期比较紧的项目,前端已开发完成,需要调试,后端接口还未开发完成。
公司某个项目依赖于第三方服务,但是第三方服务不方便频繁调用。
实际工作中,从业务到开发到测试,经常会遇到上述的情况,如此反复造成了项目的进度受限。此时,Mock框架可以很好的解决这些问题。
Mock 测试就是在测试活动中,对于某些不容易构造或者不容易获取的比较复杂的数据/场景,用一个虚拟的对象(Mock对象)来创建用于测试的测试方法。
Mock是为了解决不同的单元之间由于耦合而难于开发、测试的问题。
所以,Mock既能出现在单元测试中,也会出现在集成测试、系统测试过程中。
Mock 最大的功能是帮你把单元测试的耦合分解开,如果你的代码对另一个类或者接口有依赖,它能够帮你模拟这些依赖,并帮你验证所调用的依赖的行为。
1. 需要将当前被测单元和其依赖模块独立开来,构造一个独立的测试环境,不关注被测单元的依赖对象,只关注被测单元的功能逻辑。
2. 被测单元依赖的模块尚未开发完成,而被测单元需要依赖模块的返回值进行后续处理。
2.1 前后端项目中,后端接口开发完成之前,接口联调
2.2 依赖的上游项目的接口尚未开发完成,需要接口联调测试
3. 被测单元依赖的对象较难模拟或者构造比较复杂
如: 支付业务的异常条件很多,但是模拟这种异常条件很复杂或者无法模拟
1. 团队可以并行工作
有了Mock,前后端人员只需要定义好接口文档就可以开始并行工作,互不影响,只在最后的联调阶段往来密切;后端与后端之间如果有接口耦合,也同样能被Mock解决;测试过程中如果遇到依赖接口没有准备好,同样可以借助Mock;不会出现一个团队等待另一个团队的情
2. 开启测试驱动开发模式
当接口定义好后,测试人员就可以创建一个Mock,把接口添加到自动化测试环境,提前创建测试。
3. 可以模拟那些无法访问的资源
比如说,你需要调用一个“墙”外的资源来方便自己调试,就可以自己Mock一个。
4. 避免脏数据产生
我们需要调用一个post请求,为了获得某个响应,来看当前系统是否能正确处理返回的“响应”,但是这个post请求会造成数据库产生脏数据,那么就可以充分利用Mock,构造一个虚拟的post请求,我们给他指定返回就好了。
5. 可以用来演示
比如你已经做好了一个系统,并且需要给客户进行演示,但是里面有些真实数据并不想让用户看到,那么同样,你可以用Mock接口把这些敏感信息接口全部替换。
使用Mock测试有时可以提高团队的开发效率,但当前后端都开发完成代码后,这时应该把自动化测试代码从使用Mock测试改为调用真实的接口数据,以避免出现模块之间集成部分漏测的问题。这里说Mock存在的问题,主要是让开发和测试不要过分的依赖/相信mock接口。
1. 测试人员不应该被覆盖率高的自动化测试所迷惑,覆盖率高不代表没有问题。
2. 当把mock接口换成实际接口后,测试/开发也必须把之前的测试重新做一遍。
建议: mock接口只能主流程联调返回测试,不要过分依赖mock接口进行测试。
3. 测试完毕,上线前,请一定确保为Mock而做的相关代码/配置文件的修改,已经完全恢复了
建议:上线checklist中条条列出,并上线前review
下面来看下载地址:
https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/
这是一个jar包,只要执行该jar包,指定配置文件,就可开启一个http服务器提供服务,并且修改配置文件后也无需重启服务,支持动态加载。我使用的是moco-runner-1.1.0-standalone.jar,运行方式如下:
java -jar moco-runner-1.1.0-standalone.jar start -p 8089 -c auth_res.json
-p 指定端口号, 端口号可以进行修改
auth_res.json就是我们的mock配置文件,比如:
[ { "description":"授权接口", "request":{ "method":"post", "uri":"/qf-test/auth1" }, "response":{ "headers":{ "Content-Type":"application/json" }, "json":{ "status":200, "msg":"success", "token":"69996f84db2a4f21b9d1fdfec905735e" } } }]
以上就可以实现当我们访问127.0.0.0:8080/auth时,返回一个auth_res.json中的内容。
上述就是小编为大家整理的Mock测试是什么?为什么要进行Mock测试?
国内(北京、上海、广州、深圳、成都、重庆、杭州、西安、武汉、苏州、郑州、南京、天津、长沙、东莞、宁波、佛山、合肥、青岛)eolink软件分析、比较及推荐。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~