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-
这个命令也非常容易理解(把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 简直方便到起飞!
常用命令如下:
http实例,前面已经介绍
java -jar moco-runner-
https实例
java -jar moco-runner-
同时处理多个json请求
java -jar moco-runner-
备注:该命令在windows系统中运行报错,建议在linux系统中运行,亲测centos运行正常。
java -jar moco-runner-
我们可以统一设置要执行的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文件中设置多个请求,一个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有二周的时间了,暂时总结了两点不足:
1. 新添加的json文件,不能立即生效,需要重启moco-runner-
2. Mock的请求不能存储到数据库中,对于统计mock历史请求结果不够友好,如果想进一步解决该问题,需要编写代码解析日志来完成对mock请求信息的统计