Mock Server 之 moco-runner 使用指南二
文章出处http://blog.csdn.net/crisschan/article/details/53335234
moco-runner 安装配置
1、 下载jar
https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/moco-runner-0.11.0-standalone.jar
2、 编译运行
- 配置java环境变量
- 安装并配置Gradle(ref:http://www.gradle.org)
- 然后获取源代码:https://github.com/dreamhead/moco
- 进入代码目录,
./gradle build 撰写json
[ { "response" : { "text" : "Hello, Moco" } } ]
然后写好json后就可以启动了
java -jar moco-runner-<version>-standalone.jar start -p 12306 -c foo.json
然后就可以通过http://localhost:12306访问了
3、进阶
3.1 Content
根据request内容返回response
[{
"request" :
{
"text" : "foo"
},
"response" :
{
"text" : "bar"
}
}]
如果request内容太多,可以放到一个文件里面
{
"request" :
{
"file" : "foo.request"
},
"response" :
{
"text" : "bar"
}
}
3.2 配置文件
PS:Moco支持动态加载配置文件,所以无论你是修改还是添加配置文件都是不需要重启服务的
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在加载全局配置文件(-g仅仅在3.1context章节使用)
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参数
request里自然有很多带参数的,配置如下:
[{ "request" : { "uri" : "/getBoy", "queries": { "name":"onecoder" } }, "response" : { "text" : "Hey." } }]
上述配置匹配的url即为:http://localhost:12306/getBoy?name=onecoder,返回值即为: Hey. 也就是说,使用这种方式你需要在开发期有固定的测试参数和参数值
对于rest风格的url,Moco支持正则匹配。
[{ "request": { "uri": { "match": "/searchboy/\\w+" } }, "response": { "text": "Find a boy." } }]
此时,访问http://localhost:12306/searchboy/* 结尾加任何参数均可匹配到。
除了Get外,Post,Put,Delete等请求模式自然是支持的:
[{
"request" :
{
"method" : "post",
"forms" :
{
"name" : "onecoder"
}
},
"response" :
{
"text" : "Hi."
}}]
对于Header、Cookies等请求信息的配置也是支持的。
3.3 template
从0.8版本开始,Moco提供了template功能,可以动态的返回一些参数值。例如:
[
{
"request": {
"uri": "/template"
},
"response": {
"text": {
"template": "${req.queries['name']}"
}
}
}
]
此时通过url:http://localhost:12306/template?name=onecoder 访问,则会返回onecoder。 这样就可以通过template这种方式灵活的返回一些值。
3.4 redirect
[{ "request" : { "uri" : "/redirect" }, "redirectTo" : "http://www.coderli.com" }]
3.5 Asynchronous
[
"request":{
"uri":"/event"
},
"response":{
"text":"event"
},
"on":{
"complete":{
"async":"true",
"post":{
"url":"http://another_siter",
"content":"cintent"
}
}
}
]
这样,对于/event的访问将会是异步的。要等到对http://another_siter访问结束后,才会将结果放到response里
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
转载自:http://www.cnblogs.com/111testing/p/6091460.html 怎样使用Mock Server 一,去这里https://github.com/dream ...
- 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 实现get方法的接口(二)
mock server 实现get方法的接口(二) 下面是实现查询品牌的接口demo: 1.当response数据量小的时候,可以直接使用json, mock会自动设置headers为applicat ...
- Mock Server 之 moco-runner 使用指南一
文章出处http://ju.outofmemory.cn/entry/96866 用以下命令可以启动moco-runner 服务 java -jar moco-runner-<version&g ...
- mock server搭建及接口测试简单实例
一.搭建mock server mock工具很多,这里我们选择用简单易操作的moco服务器 使用前必须先安装java,去相关网站下载Standalone Moco Runner 二.使用mock se ...
随机推荐
- android jni log
在编写的jni时,经常需要输出打印信息进行调试,而C中printf在jni中没有效果,这时就需要使用NDK提供的函数. 1. jni中包含头文件 #include <android/log.h& ...
- 探索PowerShell----函数
http://marui.blog.51cto.com/1034148/294775/
- ionic ngRepeat追加数据(加载更多,不需要重复渲染dom数据)
1)模版循环在之前的随笔中已经说过,使用挺简单的 http://www.cnblogs.com/tujia/p/6078217.html 简单来说就是控制器输入一个数据变量,模版里用ng-repeat ...
- 使用vue来做局部刷新
我们都知道,vue的组件化是他最强大的核心所在,路由也是特别可爱的一部分,但是路由适合一些大型的组件,看url路径的时候会出现变化,但是有时候我们想要一些小的局部小刷新,这个时候就需要用到它的动态组件 ...
- android开发环境之ADT安装,卸载,更新
http://hj198703.iteye.com/blog/1316991 1.官网:http://developer.android.com/sdk/index.html2.ADT组件在线安装 ...
- HDU 5667 Sequence(矩阵快速幂)
Problem Description Holion August will eat every thing he has found. Now there are many foods,but he ...
- 5501环路运输【(环结构)线性DP】【队列优化】
5501 环路运输 0x50「动态规划」例题 描述 在一条环形公路旁均匀地分布着N座仓库,编号为1~N,编号为 i 的仓库与编号为 j 的仓库之间的距离定义为 dist(i,j)=min(|i-j| ...
- 购物车 cookie session
0-服务器识别用户的目的:服务器存有不同用户的信息,而对这些信息,服务器自身.网站开发管理者.网站访问者会对其读写: 1-暂且存入服务器数据库,购物车分为2种表:购物车入车表和购物车下单表: 2-单个 ...
- 小程序 当button遇上Flex布局
当需要将button按行排列,当超过一行时,可以换行,从左到右排列,想实现如下效果(实现的比较粗糙,能说明问题就行,呵~~~): 使用Flex布局,在设置主轴方向上对齐方式,使用justify-con ...
- 该死的Kafka,远程连接Kafka超时以及解决办法
关于消息的发布与订阅,之前一直使用的是activeMQ基于JMS的消息队列进行操作的,最近听说有一个更高效的消息的发布与订阅技术,就是Kafka. 关于kafka的介绍,在这里就不做过多讲解了,因为我 ...