关于mockservice

来源:互联网 发布:远程端口是什么 编辑:程序博客网 时间:2024/06/05 00:40
转自http://blog.csdn.net/jackyneo/article/details/6600843
 
 
____最近一段时间利用部分工作时间和一部分工作之余时间,实现了mockservice系统的搭建和功能时间,那么什么是mockservice系统?~

____首先解释一下mockservice系统的由来,以目前的A系统为例来分析一下:A系统因为对各个其他系统的依赖非常严重(需要发送消息并取得返回结果或者返回即时处理结果),而目前我们开发环境的各个环境是非常不稳定的,所以直接调用开发环境中真实的系统B服务接口来取得对应的结果绝大部分情况下都是失败的,严重影响我们的本地测试、远程测试和集成测试。对于本地测试和集成测试,我们采用普通的mock插件(比如jmock、mockito:个人推荐mockito)直接在本地起的系统A调用其他系统相关接口的时候mock掉这些接口,然后返回自己想要的值即可;可是对于远程测试就不行了,从下面的图可以看出:


____应用场景一:从上面的图中可以看出,如果是本地测试,测试代码中直接把依赖其他系统的接口mock掉即可以了;而对于远程测试模式,因为调用的A系统服务是部署在服务器上的,而服务器是无法mock依赖的其他系统服务,这就导致了远程测试不过的问题出现了。在此基础上,mockservice就诞生了,可想而知,mockservice系统所要做的就是,模拟A系统依赖的各个其他系统的服务,并根据调用接口的参数返回指定的结果。这样让A系统本来调用实际的其他系统服务改为调用mockservice发布的一样的服务就可以了,就达到了远程mock的效果,就排除了因为通信前置的问题导致远程测试失败的问题了。

____应用场景二:核心组希望建立一个核心系统的独立测试环境,这个环境中自然要排除除了核心测试外的其他系统了,否则如果要是所有的系统都单独搭建一遍的话,公司上百多的系统代价就太大了,所以mockservice的作用就又出来了,一个mockservice系统mock所有需要被核心系统调用的外围系统(这里指除核心系统外的系统)的各种服务了。

关于mockservice,它需要做到以下几点:

1、可以mock掉指定系统的指定的服务;

2、一个mockservice系统可以mock不同系统的不同服务;

3、返回值与调用参数对应关系可以定制,并且可以多组组合并存;

4、新增一组或多组返回值时,不需要重启服务器;

5、不依赖任何系统(可以引用jar包)

6、mock的实现需要具有一定通用性,有一定可扩展性。


0 0
原创粉丝点击