moco介绍

moco框架是github上的一个开源项目,可模拟http,https,Socket协议的mock操作。如果大家不了解什么是mock请参考文章:

从0到1学会使用SpringBoot 搭建mock Server

这里重点介绍moco的standolone方式的用法! 下载地址:https://github.com/dreamhead/moco,点击下图中的Download Standalone Moco Runner 即可

启动moco 非常的简单

java -jar moco-runner-<version>-standalone.jar http -p 9999 -c test.json

这个命令也非常容易理解(把test.json放到moco.jar的相同目录即可)

http 表示使用的协议。Moco支持http,https,Socket三种协议

-p 表示使用的端口 ,不使用该参数默认启动端口58593

-c 是定义的mock 请求和与其对应的响应文件,使用json格式,示例如下:

[
{
"request":
{
"uri":"/hello"
},
"response":
{
"text":"moco"
}
}
]

此时我们在浏览器输入:http://127.0.0.1:9999/hello 回看到浏览器中显示信息 moco。这就是最简单的moco mock的实例!大家是不是感觉到使用moco创建mock 简直方便到起飞!

moco命令介绍

常用命令如下:

http实例,前面已经介绍

java -jar moco-runner-<version>-standalone.jar http -p 12306 -c foo.json

https实例

java -jar moco-runner-<version>-standalone.jar https -p 12306 -c foo.json --https /path/to/cert.jks --cert mocohttps --keystore mocohttps

同时处理多个json请求

java -jar moco-runner-<version>-standalone.jar http -p 12306 -c "*.json"

备注:该命令在windows系统中运行报错,建议在linux系统中运行,亲测centos运行正常。

java -jar moco-runner-<version>-standalone.jar http -p 12306 -g settings.json

我们可以统一设置要执行的json文件(即配置文件),当json文件非常多时,这种方式显然能够提升执行效率,具体代码如下:

[
{
"include" : "foo.json"
},
{
"include" : "bar.json"
}
]

更多信息可以参考

https://github.com/dreamhead/moco/blob/master/moco-doc/global-settings.md

其他参数

-q 使用Quiet 模式,该模式下不会显示请求和响应的详细信息

Version 查看moco的版本信息

-s 9527 关闭moco

Json文件常用实例

在一个json文件中设置多个请求,一个get请求,一个post请求并且是json格式,一个是使用了template函数的get请求

[
{
"request":{
"uri":"/withGetDemo",
"method":"get"
},
"response":{
"text":"this is a get method "
}
}
,
{
"request":{
"uri":"/withPostDemo",
"method": "post",
"headers": {
"content-type": "application/json"
},
"json": {
"name": "xiaoming",
"age": "18"
}
},
"response":{
"text":"this is a post method"
}
},
{
"request": {
"uri": "/template"
},
"response": {
"text": {
"template": "${now(\"yyyy-MM-dd\")}"
}
}
}
]

其他api详情请参考

https://github.com/dreamhead/moco/blob/master/moco-doc/apis.md

更多实例请参考

https://github.com/dreamhead/moco/tree/master/moco-runner/src/test/resources

moco的不足

使用moco有二周的时间了,暂时总结了两点不足:

1. 新添加的json文件,不能立即生效,需要重启moco-runner-<version>-standalone.jar,如果多人同时使用moco,新增或者更新mock时,需要协调通知。

2. Mock的请求不能存储到数据库中,对于统计mock历史请求结果不够友好,如果想进一步解决该问题,需要编写代码解析日志来完成对mock请求信息的统计

详解构建mock服务最方便的神器——Moco相关推荐

  1. 深入原生冰山安全体系,详解华为云安全服务如何构筑全栈安全

    摘要:如果把云安全比作"冰山",不仅要关注冰山上的"安全服务和特性",还要关注冰山下各种基础安全建设. 本文分享自华为云社区<深入原生冰山安全体系,详解华 ...

  2. java实现的微服务架构_详解Java 微服务架构

    一.传统的整体式架构 传统的整体式架构都是模块化的设计逻辑,如展示(Views).应用程序逻辑(Controller).业务逻辑(Service)和数据访问对象(Dao),程序在编写完成后被打包部署为 ...

  3. 二叉树前序中序后续线索树_后序线索二叉树怎么画 线索二叉树基本操作详解 - 办公软件 - 服务器之家...

    后序线索二叉树怎么画 线索二叉树基本操作详解 发布时间:2017-05-23 来源:服务器之家 遍历二叉树是以一定规则将二叉树中结点排列成一个线性序列,得到二叉树中结点的先序,中序或后序序列.这实际上 ...

  4. Service 服务详解 及自定义服务模板

    文章目录 1.服务简介 2.服务的生命周期 1) Service 的 启动 停止 2).服务的生命周期的方法 3.使用startService 启动后服务的生命周期 1).文件结构 2) activi ...

  5. 属性匹配工具_测试工具链——高效构建Mock服务

    现在,WEB系统的开发一般都采用前后端分离的架构,以及部分公司采用"前台-中台-后台"的组织架构,难免会出现开发进度不一致的情况,导致系统联调或测试需要等到所有依赖开发完成后才能够 ...

  6. 详解分布式协调服务 ZooKeeper

    这篇文章主要会介绍 Zookeeper 的实现原理以及常见的应用 在 2006 年,Google 发表了一篇名为 The Chubby lock service for loosely-coupled ...

  7. 详解DNS域名解析服务

    目录 一.DNS 1.1 DNS 服务介绍 DNS(Domain Name System,域名系统),因特网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记 ...

  8. apache 2.4 httpd.conf 详解_Linux Centos服务子系统详解

    1.服务的分类 启动与自启动: 服务启动:就是在当前系统中让服务运行,并提供功能. 服务自启动:自启动是指让服务在系统开机和重启之后,随着系统的启动而自动启动服务 查询已安装的服务: RPM包安装的服 ...

  9. ssh linux 配置文件详解,Linux ssh服务常用配置的详细描述及建议配置

    SSH服务常用选项描述 配置文件: /etc/ssh/sshd_config 1.AddressFamliy any:支持那IP协议:比如ipv4,ipv6,:默认 any: 2.Port 22 :S ...

最新文章

  1. 强化学习(九)- 策略梯度方法 - 梯度上升,黑箱优化,REINFORCE算法及CartPole实例
  2. MS-DAYOLO来了!多尺度域自适应的YOLO,恶劣天气也看得见!
  3. 数学建模传染病模型_数学建模| 时间序列模型
  4. 文件读取ini文件另一种读取办法
  5. 21 张让你代码能力突飞猛进的速查表(神经网络、线性代数、可视化等)
  6. Vue检测当前是否处于mock模式
  7. java实现复原IP地址,回溯算法:复原IP地址
  8. 为什么现在的手机价格越来越高,最后一条真相了...
  9. [转载]更改XP默认字体为微软雅黑
  10. 史上最强技术电信诈骗蔓延!无法防范!只能等死!
  11. 【哈工大SCIR Lab】Attention!注意力机制可解释吗?
  12. 我已经不用 try catch 处理异常了!太辣鸡了!
  13. 计算机科学导论第12版答案,计算机科学导论第12章参考答案
  14. 软件测试仓库管理信息系统,仓库管理系统测试报告
  15. (坦克警戒大战)技术服务支持
  16. contextcapture多区块点云_Smart 3D (ContextCapture) 4.4.6版本最新功能
  17. mysql 减去一月_sql – 如何从日期列中减去一个月
  18. 用matlab画出ex,如何用matlab画函数图形
  19. matlab打开相机
  20. postgresql学习(一)

热门文章

  1. 使用MATLAB进行多元非线性回归——nlinfit函数的使用
  2. 利用sox 做通道转换
  3. shell shift 的用法
  4. linux查看CPU个数、核数、运行模式以及是否支持超线程技术
  5. STM32 Proteus UCOSII系统简易时钟计时系统-0054
  6. 记录一次参加D2前端技术论坛的杭州之行 1
  7. 私网地址与Internet地址
  8. python-restful-02-组件(序列化\认证)
  9. Spring参考文档翻译11--IOC容器09
  10. 学妹来实习,看我如何步步为营!