首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >详解构建mock服务最方便的神器——Moco

详解构建mock服务最方便的神器——Moco

作者头像
IT大咖说
发布2022-08-26 14:18:15
发布2022-08-26 14:18:15
1.7K0
举报
文章被收录于专栏:IT大咖说IT大咖说

◆ moco介绍

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

什么是mock

这里重点介绍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格式,示例如下:

代码语言:javascript
复制
[{"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文件非常多时,这种方式显然能够提升执行效率,具体代码如下:

代码语言:javascript
复制
[{"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请求

代码语言:javascript
复制
[{"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请求信息的统计

来源:

https://www.toutiao.com/article/7129709173151007264/?log_from=93cb9d8513ab3_1660527620374

“IT大咖说”欢迎广大技术人员投稿,投稿邮箱:aliang@itdks.com

来都来了,走啥走,留个言呗~

 IT大咖说  |  关于版权

由“IT大咖说(ID:itdakashuo)”原创的文章,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!

  • 相关推荐 推荐文章
  • 分享一个日常使用的一段shell脚本
  • Java 结构化数据处理开源库 SPL
  • 高度定制化 Git 工作流工具,上手简单,功能强大,性能优异
  • 面向数据科学家的流处理介绍
  • 8 月编程语言排行榜:没有一门语言能比得上 Python
  • nginx--正向代理、反向代理及负载均衡
  • 为什么实时分析既需要NoSQL的灵活性,又需要SQL系统的严格模式?
  • 干货:RabbitMQ核心概念及工作原理
  • 埋头三天才把冷热分离二期实现思路:冷数据存放到HBase给搞懂
  • 2022年软件开发的趋势
  • Nomad正在接管Kubernetes吗
  • MIT协议分布式文件系统,一个简单、方便的文件存储方案
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ◆ moco介绍
  • ◆ moco命令介绍
  • ◆ Json文件常用实例
  • ◆ moco的不足
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档