![6947c878da06289a4d533eb733ac6a98.png](https://i-blog.csdnimg.cn/blog_migrate/5a4c064bb07b51c917d9284966721537.jpeg)
阅读人群
本系列针对具有以下经历的同学:
1.对Android和Okhttp都有了解的人
2.对APP有Mock需求的人
![4505a3786874049e63e8018c5d5a6daf.png](https://i-blog.csdnimg.cn/blog_migrate/a662887a49810dceabbae2cd85d31272.png)
背景
/ EXPERIENCE SHARING
01
EasyMockMaster解决了什么问题?
在公司开发APP时,笔者作为一个秉承着能自动化的绝不手动的原则Android开发,在实际工作遭遇了一个让我十分烦躁的事情,就是造数据!!由于我开发的APP相当于滴滴司机的司机端,所以基本就是一个数据的消费者,而数据的生产者便是,下订单的客户端;然而问题来了,从下订单到可以让司机拿到这部分流程经过了太多的系统,这个使得我们造数据的成本相当之高!于是我开始想到利用Mock解决问题......
于是,网上各种工具中,我发现了这个:
它的功能有两个很方便:
支持mockJS和一定的JS语法
支持swagger的内容导入
但是,业界对APP的Mock数据支持普遍偏少,更多是对网页的有更好的支持,于是我动起了自己适配EasyMock的念头,于是,就有了EasyMockMaster......
所以,总的来说,解决了两个APP使用Mock功能的痛点:
1. 需要部分接口为真实的,才可以进入到对应开发调试的界面,于是我设定了开关可以动态切换真假数据
2. 传统的数据不够真实,使用时不够方便,而我提供了Mock录制功能,支持了真实数据的录制和回放
示例展示:
02
详细功能展示
app使用展示
正常app的情况
首先,看一下我们的示例app的正常下的一个情况
正常情况下,我们的app是有两个接口
一个获取的正常几个城市天气预报
一个是获取几个城市的生活指数
Mock模式
单一接口Mock
先上效果
可以看到,app首先可以正常获取任意的接口数据,接下来,我们打开 mock工具的界面的选中mock数据打开mock接口列表,将"天气接口"选择mock掉,此时回到app的界面,mock工具实现了以下的效果
天气接口被返回数据被替换成了 mock的数据
生活指数接口不受任何的影响,即mock和实际接口可以混合使用
最后,在mock接口的列表中,将其选择mock的接口关闭掉,则接口可以正常获取数据,至此Mock功能就展示完毕
全部接口Mock
在上面的操作界面,进入到Mock接口列表,勾选全选即可......
mocK数据录制
首先,我们看一下我们的easymock后台界面的原始数据的样式
接下来,我们看一下,当我们好不容易造了一个真实数据,我们想把这个json的保留在easymock中,以方便我们后期反复使用,我们的工具可以提供怎样的帮助:
我们做了以下操作:
开启mock查看当前mock数据保存内容
关闭mock接口,开启mock录制功能
获取真实接口数据
将真实数据内容同步到easymock服务中
所以,当我们录制完成后,我们的mock接口内容就变成了这样
注意:
同一个接口,开启mock功能,则record功能就失效了,不会将mock数据再录制到其
不同接口,一个开启mock,另一个没有开启还是可以继续录制的!!!!
总结
/ SUMMARY
至此便是笔者开源的功能库的全部功能,想要更多了解类库的同学,可以点击一下“阅读原文”,直接带你到github哟,想了解原理的同学可以查看“OKHTTP实战”
但是其实笔者对Mock的功能的探索并没有至此结束,在持续化集成中的,多系统UI自动化测试中,我们又Mock数据这一功能进行了更多的配合和支持,后续会单独出一篇为大家介绍,不过这里先给大家送上一张效果图
完
![d6f0fb6210ac5f33875a91592d9fa681.png](https://i-blog.csdnimg.cn/blog_migrate/3214eb616a17a42583e1dc4259e95115.png)