每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
Hello,大家好,今天小编给大家分享一个实现mock服务的工具moco.
那么问题来了,什么是mock服务?
Mock服务是指在测试过程中对于某些复杂(或者不太好构造)的对象,用一个虚拟的对象替代它。假如现在有A和B两个接口, A需要调用接口B才能完成业务需求。
这个时候B接口有如下三种情况:
-
B还没有开发完成—需要等待接口的数据来进行开发,这时候完善的接口Mock服务能大大缩短开发联调等待时间。
-
B的某些场景很难去模拟—比如超时、未知错误或者不稳定的第三方接口。
-
性能测试中隔离B接口(第三方接口)—在进行压测的时候就会遇到问题。
因为很难隔离掉其他服务和第三方接口的性能变化情况—响应时间不稳定。
那么怎么实现mock服务呢?方法有很多种,有很多开源的工具,比如,mock.js,Easy-mock,moco,fiddler/charles等,或者用flask框架直接自己去实现,这些都是可以的。今天给大家分享的moco就是众多实现mock服务工具中的一员,也是很受欢迎的一款工具,也下来详细的给大家介绍一下。
Moco这个工具依赖于java环境,所以需要提前安装jdk,它实现mock服务的原理是更改json的配置文件,主要是更改请求和响应这两个关键字里面的配置参数信息。常用的请求和响应的配置参数信息如下所示:
Moco的jar包的下载地址如下:
http://navo.top/UFV7fi
github的地址:
http://navo.top/uyABbu
启动命令:
java -jar moco-runner--standalone.jar start -p 端口号 -c xxx.json
备注: xxx.json需要我们自己去配置,根据配置request和response来mock一个接口服务,这样我们就可以访问定义的request来获取到对应自定义的response了。
下面的所有情况,你都首先要开启mock服务,我把所有的配置信息都放在mock.json这个文件中,所以启动命令为java -jar moco-runner-1.1.0-standalone.jar start -p 10086 -c mock.json
,
启动服务成功之后,再用postman访问接口,查看效果。
接下来给大家详细的列出常用的几种场景应该如何去写json脚本。
第一种情况,请求方法为get的接口。
下面的json脚本是我定义了一个请求方法是get请求,url地址是/get,请求参数是id='12306’和name='moco’响应值是{“text”:“moco get”}的mock接口
[
{
"request":
{
"method":"get",
"uri":"/get",
"queries":