1. 什么是mock?
在软件测试过程中,对于一些不容易构造、获取的对
象,用一个虚拟的对象来替代它,以达到相同的效果,这个虚拟的对象就是Mock。
在前后端分离项目中,当后端工程师还没有完成接口开发的时候,前端开发工程师利用Mock技术,自己用 mock技术先调用一个虚拟的接口,模拟接口返回的数据,来完成前端页面的开发。
其实,接口测试和前端开发有一个共同点,就是都需要用到后端工程师提供的接口。所以,当我们做接口测试的时候,如果后端某些接口还不成熟、所依赖的接口不稳定或者所依赖的接口为第三方接口、构造依赖的接口数据太复杂等问题时,我们可以用mock的方式先虚拟这些接口返回来代替。提高工作效率。
- 使用场景:
第一个后端没有开发好,自动化测试的脚本需要提前开发与调试可以使用mock技术
提供执行效率:调用第3方接口---响应特别的长(有不稳定的情况)--10s----在自动化脚本调试的前期
- 实现mock方案
1、自己开发一个后端---使用django flask---对于一般的测试人员有很大的挑战!
2、使用一些框架使用 moco 减轻测试人员的开发的成本,
2. moco介绍
实现mock的技术很多,这些技术中,可以分为两类, mock数据和mock服务:
mock数据:即 mock 一个对象,写入一些预期的值,通过它进行自己想要的测试。常见的有:
EasyMock、Mockito 、WireMock、JMockit。主要适用于单元测试。
mock 服务:即mock 一个 sever,构造一个依赖的服务并给予他预期的服务返回值,适用范围广,更加适合集成测试。如 moco框架。
Moco 是类似一个 Mock 的工具框架,一个简单搭建模拟服务器的程序库/工具,下载就是一个JAR包。有如下特点:
只需要简单的配置 request、response 等即可满足要求
支持 http、https、socket 协议,可以说是非常的灵活性
支持在 request 中设置 Headers , Cookies ,
StatusCode 等
对 GET、POST、PUT、DELETE 等请求方式都支持无需环境配置,有 Java 环境即可 修改配置后,立刻生效。只需要维护接口,也就是契约即可
支持多种数据格式,如 JSON、Text、XML、File 等可与其他工具集成,如 Junit、Maven等
3. 下载moco
我们可以直接去github上获取moco的jar包,当前版本 是:V1.1.0。 地址:https://github.com/dreamhead/moco 这里展示了 关于moco的介绍和源码,我们可以点击箭头处直接下载 它的jar包。
4. 配置json文件
我们需要先编辑一个json文件,用来模拟不同的请求,返回不同的响应。新建一个文件,格式改为json,然后打开这个文件进行编辑。如图: