Mock Server 之 moco-runner 使用指南一
文章出处http://ju.outofmemory.cn/entry/96866
用以下命令可以启动moco-runner 服务
java -jar moco-runner-<version>-standalone.jar start -p 12306 -c ***.json
其中12306是任意指定的端口号。foo.json是需要加载的配置文件名。<version> 是你下载的Moco的版本号,当前最新版为0.9.2。

上图中,启动信息之外的信息,是通过浏览器访问地址:http://localhost:12306后,控制台输出的信息。此时的配置文件如下:
[ { "response" : { "text" : "Hello, Moco" } } ]
剩下的任务就是构造自己项目的配置文件了。这部分内容的详细文档在:https://github.com/dreamhead/moco/blob/master/moco-doc/apis.md 值得一提的是,Moco支持动态加载配置文件,所以无论你是修改还是添加配置文件都是不需要重启服务的。这点非常方便。 关于配置文件,这里OneCoder介绍几个关键的部分: Moco支持在全局的配置文件中引入其他配置文件,这样就可以分服务定义配置文件,便于管理。例如你有两个项目Boy和Girl项目需要使用同一个Mock Server,那么可以分别定义boy.json和girl.json配置文件,然后在全局文件中引入即可: 全局配置如下:
[ { "context": "/boy", "include": "boy.json" }, { "context": "/girl", "include": "girl.json" } ]
在boy.json和girl.json中分别定义:
//boy
[ { "request" : { "uri" : "/hello" }, "response" : { "text" : "I am a boy." } } ]
//girl
[ { "request" : { "uri" : "/hello" }, "response" : { "text" : "I am a girl." } } ]
注意,此时需要通过参数-g在加载全局配置文件。即:
java -jar moco-runner-<version>-standalone.jar start -p 12306 -g onecoder.json
否则配置文件解析会报错。这里容易忽略。 启动成功后,我们分别通过http://localhost:12306/girl/hello 和 http://localhost:12306/boy/hello 访问服务,便可得到对应的reponse结果。 其实全局文件的引入方式还有直接include等,不过OneCoder觉得context这种方式应该比较常用,管理起来也比较方便。 接下来要关注的就是每个模块内的配置文件本身了。基本的request/response已经见过了。request里自然有很多带参数的,配置如下:
{ "request" : { "uri" : "/getBoy", "queries": { "name":"onecoder" } }, "response" : { "text" : "Hey." } }
上述配置匹配的url即为:http://localhost:12306/boy/getBoy?name=onecoder,返回值即为: Hey. 也就是说,使用这种方式你需要在开发期有固定的测试参数和参数值。 对于rest风格的url,Moco支持正则匹配。
{ "request": { "uri": { "match": "/searchboy/\\w+" } }, "response": { "text": "Find a boy." } }
此时,访问http://localhost:12306/boy/searchboy/*** 结尾加任何参数均可匹配到。 除了Get外,Post,Put,Delete等请求模式自然是支持的:
{
"request" :
{
"method" : "post",
"forms" :
{
"name" : "onecoder"
}
},
"response" :
{
"text" : "Hi."
}}
当然,对于Header、Cookies等请求信息的配置也是支持的。官方文档介绍的也很清除,这里着重说一下template功能。上面介绍了对于带参数的请求参数,请求参数的值和返回值都是固定的,这自然太过死板。好在从0.8版本开始,Moco提供了template功能,可以动态的返回一些参数值。例如:
[
{
"request": {
"uri": "/template"
},
"response": {
"text": {
"template": "${req.queries['name']}"
}
}
}
]
此时通过url:http://localhost:12306/template?name=onecoder 访问,则会返回onecoder。 这样就可以通过template这种方式灵活的返回一些值。 最后,再介绍一个redirect
{ "request" : { "uri" : "/redirect" }, "redirectTo" : "http://www.coderli.com" }
用过浏览器访问对应的地址,就会跳转到我的博客了,哈哈。 更多的配置方式,这里就不一一介绍了。真的可以看文档就搞定了。总体来说,场景覆盖的还是很全的,但是总觉得respone的配置不够灵活,通过修改源码我们可以扩展一下自己想要的方式。这部分只能有空再看了:)
Mock Server 之 moco-runner 使用指南一的更多相关文章
- 接口测试 mock server 工具moco学习笔记
看过乙醇分享的接口测试,自己练习了moco,这里呢,吧一些练习的笔记坐下记录,方便自己查阅. 开源地址https://github.com/dreamhead/moco , 到QuickStart ...
- 接口测试 mock server 工具moco
看过乙醇分享的接口测试,自己练习了moco,这里呢,吧一些练习的笔记坐下记录,方便自己查阅. 开源地址https://github.com/dreamhead/moco , 到QuickStart ...
- Mock Server利器 - Moco
Moco介绍Moco独立运行所需环境如何运行Moco启动http服务启动https服务Moco HTTPs API配置如何在配置文件添加注释约定请求Body约定接口的uri约定请求参数约定请求方法约定 ...
- Mock Server文章链接
Mock Server文章链接 2017-06-14 1 Dreamhead (Zheng Ye) Moco可以提供以下服务: HTTP APIs Socket APIs REST API GitHu ...
- 基于moco的mock server 简单应用 来玩玩吧
提起mock大家应该就知道是干嘛用的了,再次再介绍一种简单的方式,基于moco的mock server.步骤很简单: 1. 首先,要下载个moco的jar0_1482402640757_moco-ru ...
- Mock Server 之 moco-runner 使用指南二
文章出处http://blog.csdn.net/crisschan/article/details/53335234 moco-runner 安装配置 1. 下载jar https://repo1. ...
- Mock Server 入门
Mock Server介绍 什么是mock ? 我在去年的时候介绍一篇幅 python mock的基本使用,http://www.cnblogs.com/fnng/p/5648247.html 主要是 ...
- Mock Server 入门(一)
Mock Server 使用场景 1.开发过程中依赖一些接口,而这些接口可能有一下情况: 1)接口搭建环境比较困难:例如支付宝的支付接口,需要授权等等准备好才能进行调试 2)接口暂时还未实现时:可以便 ...
- mock server搭建及接口测试简单实例
一.搭建mock server mock工具很多,这里我们选择用简单易操作的moco服务器 使用前必须先安装java,去相关网站下载Standalone Moco Runner 二.使用mock se ...
随机推荐
- 故如果要比较两个字符串是否相同可以对a调用equal
故如果要比较两个字符串是否相同(而不是他们的地址是否相同).可以对a调用equal: System.out.println(a.equal(b)); equal用来比较两个对象中字符串的顺序. a.e ...
- Hibernate Annotations 注解
Hibernate Annotations 注解 对于org.hibernate.annotations与org.hibernate.persistence,它的注释比如Columns,可是不知道怎么 ...
- ORCLE 表中列的修改(非常全面哦)
今天下午主要做了个实验,是针对 测试表的列,进行添加,修改,删除的.做法如下: 增加一列: alter table emp4 add test varchar2(10); 修改一列: alter ta ...
- TCP/IP 在 Windows 下的实现
Windows 实现TCP/IP 协议也是建立在上一篇博客的OSI 基础之上的. 用户态是由ws2_32.dll 和一些其他服务提供者的 dll 共同实现,当中ws2_32.dll 是一个框架.能够容 ...
- 解决项目导入dubbo依赖项目报红叉问题
1.maven+ssm项目导入dubbo依赖 项目报错如下 2.出错原因在于dubbo依赖低版本的spring和低版本netty,准备通过maven的依赖管理将依赖传递过来的低版本的spring和ne ...
- 说说M451例程之PWM的寄存器讲解
M451提供了两路PWM发生器.每路PWM支持6通道PWM输出或输入捕捉.有一个12位的预分频器把时钟源分频后输入给16位的计数器,另外还有一个16位的比较器.PWM计数器支持向上,向下,上下计数方式 ...
- Cocos2d-x学习之 整体框架描述
1.Cocos2d-x 整体描述 和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成: 导演(CCDiretor): 在cocos2d-x引擎中,CCDirecto ...
- centos免密登录
本文是为了docker-machine增加现有虚拟机服务器为节点而做 docker-machine create -d generic --generic-ip-address=192.168.102 ...
- UEFI,BIOS,MBR,
UEFI启动是一种新的主板引导项,正被看做是有近20多年历史的BIOS 的继任者.顾名思义,快速启动是可以提高开机后操作系统的启动速度.由于开机过程中UEFI的介入 第一:安全性更强 UEFI启动需要 ...
- Laravel 5.x HTTPS反向代理的实现
需求 可针对多个域名设置HTTPS并指向到同一个项目. 最先考虑到的是通过nginx的反向代理来实现,最终测试发现效果并不完美. 示例如下: server { listen 127.0.0.1:808 ...