文章出处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"
    }
    }]

    访问:http://localhost:12306

  • 如果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 使用指南二的更多相关文章

  1. 接口测试 mock server 工具moco学习笔记

    看过乙醇分享的接口测试,自己练习了moco,这里呢,吧一些练习的笔记坐下记录,方便自己查阅. 开源地址https://github.com/dreamhead/moco  ,  到QuickStart ...

  2. 接口测试 mock server 工具moco

    看过乙醇分享的接口测试,自己练习了moco,这里呢,吧一些练习的笔记坐下记录,方便自己查阅. 开源地址https://github.com/dreamhead/moco  ,  到QuickStart ...

  3. Mock Server利器 - Moco

    Moco介绍Moco独立运行所需环境如何运行Moco启动http服务启动https服务Moco HTTPs API配置如何在配置文件添加注释约定请求Body约定接口的uri约定请求参数约定请求方法约定 ...

  4. 怎样使用Mock Server

    转载自:http://www.cnblogs.com/111testing/p/6091460.html 怎样使用Mock Server   一,去这里https://github.com/dream ...

  5. Mock Server文章链接

    Mock Server文章链接 2017-06-14 1 Dreamhead (Zheng Ye) Moco可以提供以下服务: HTTP APIs Socket APIs REST API GitHu ...

  6. 基于moco的mock server 简单应用 来玩玩吧

    提起mock大家应该就知道是干嘛用的了,再次再介绍一种简单的方式,基于moco的mock server.步骤很简单: 1. 首先,要下载个moco的jar0_1482402640757_moco-ru ...

  7. mock server 实现get方法的接口(二)

    mock server 实现get方法的接口(二) 下面是实现查询品牌的接口demo: 1.当response数据量小的时候,可以直接使用json, mock会自动设置headers为applicat ...

  8. Mock Server 之 moco-runner 使用指南一

    文章出处http://ju.outofmemory.cn/entry/96866 用以下命令可以启动moco-runner 服务 java -jar moco-runner-<version&g ...

  9. mock server搭建及接口测试简单实例

    一.搭建mock server mock工具很多,这里我们选择用简单易操作的moco服务器 使用前必须先安装java,去相关网站下载Standalone Moco Runner 二.使用mock se ...

随机推荐

  1. 【openwrt+arduion】案例

    http://www.geek-workshop.com/thread-4950-1-1.html http://www.guokr.com/article/319356/ http://www.gu ...

  2. wpf中用户控件的属性重用

    我们经常会抽取一些可重用的控件,某个属性是否需要重用,直接决定了这个属性的绑定方式. 1.完全不可重用的控件 有一些与业务强相关的控件,它们的属性完全来自ViewModel,越是相对复杂的控件,越容易 ...

  3. 配置使用TargetFrameworks输出多版本类库

    1.类库右键 2.修改配置 修改前: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <Targe ...

  4. Spring_day04--HibernateTemplate介绍_整合其他方式_Spring分模块开发

    HibernateTemplate介绍 1 HibernateTemplate对hibernate框架进行封装, 直接调用HibernateTemplate里面的方法实现功能 2 HibernateT ...

  5. iOS开发之--获取验证码倒计时及闪烁问题解决方案

    大家在做验证码的时候一般都会用到倒计时,基本上大家实现的方式都差不多,先贴出一些代码来.. -(void)startTime{ __block ; //倒计时时间 dispatch_queue_t q ...

  6. 【集中工作薄】 当前文件夹中所有Excel文件中 多个工作簿的第一个工作表 复制到工作簿中

    功能:当前文件夹中所有Excel文件中 多个工作簿的第一个工作表 复制到工作簿中 Sub Books2Sheets() '定义对话框变量 Dim fd As FileDialog Set fd = A ...

  7. 追踪溯源--抓住隐藏在NAT后面的罪犯

    零.绪论: 水一篇,很小,只是一点思路记录,在工作中经常遇到的一类小问题.NAT后面的地址如何追查下去,推动网络整改不现实,总还要有一些手段来确认. 一.背景: 全球IPv4地址越来越少,也越来越贵, ...

  8. 苹果微信浏览器不能post方式提交数据问题

    form表单中采用post方式提交数据时,在苹果的微信浏览器中无法传递,安卓的可以 如图: 在controller中获取该数据为 null 将表单的提交方式修改为get就能够获取到 现在采用Ajax方 ...

  9. Vue基础-匿名插槽与作用域插槽的合并和覆盖行为

    Vue 测试版本:Vue.js v2.5.13 Vue 文档: <slot> 元素可以用一个特殊的特性 name 来进一步配置如何分发内容.多个插槽可以有不同的名字.具名插槽将匹配内容片段 ...

  10. R中实现脚本调用,以及函数调用

    R中实现脚本调用,以及函数调用 这里的列子是test.R调用mysql_con.R中的函数 mysql_con.R # 使用RMySQL操作数据库 # 载入DBI和RMySQL包 #library(D ...