Coup de Grace

基于moco的mock server搭建

项目地址

文档地址:

年初写就,到年末更新了Rest请求的模拟部分

我最近也打算给moco套一个jsoneditor的壳子.


intro

传统的mock server我们要写个war包放入容器中启动或者启动一个node server.每当发生改动还需要进行重启.

要么就是贪多嚼不烂,想着包揽反代,测试套件等内容.

moco的优点:


Socket模拟

简洁搭建如下:

文件中需要编写request/response对,具体配置项可以看这里

示例内容(一个网站的手撕鬼子模拟):

[
  {
    "request": {
      "uri": "/system/resource/creategjjcheckimg.jsp", 
      "queries": {
        "random": "2"
      }
    }, 
    "response": {
      "status": 200, 
      "file": "vc.png"
    }
  }, 
  {
    "request": {
      "uri": "/gjjcx_dl.jsp", 
      "queries": {
        "urltype": "tree.TreeTempUrl", 
        "wbtreeid": "1172"
      }
    }, 
    "response": {
      "latency": {
        "duration": 1, 
        "unit": "second"
      }, 
      "status": 200, 
      "text": "已登录"
    }
  }, 
  {
    "request": {
      "uri": "/gjjcx_gjjxxcx.jsp", 
      "queries": {
        "urltype": "tree.TreeTempUrl", 
        "wbtreeid": "1178"
      }
    }, 
    "response": {
      "status": 200, 
      "file": {
        "name": "xian1.response", 
        "charset": "UTF-8"
      }
    }
  }, 
  {
    "request": {
      "uri": "/gjjcx_gjjmxcx.jsp", 
      "queries": {
        "urltype": "tree.TreeTempUrl", 
        "wbtreeid": "1177"
      }
    }, 
    "response": {
      "headers": {
        "content-type": "text/html"
      }, 
      "status": 200, 
      "file": {
        "name": "xian2.response", 
        "charset": "UTF-8"
      }
    }
  }
]

目录结构如图:

配置后台运行,在上条命令后加上 & 符号即可. 想在后台运行时打印日志,在上条命令后加上 nohup 即可.

Rest模拟

久别重逢的再次更新,模拟了jsxrs的多层结构.

[{
  "resource": {
    "name": "inner-api",
    "resource": [{
      "name": "ttjaxrs",
      "resource": [{
        "name": "ttmethod",
        "get": [{
          "response": {
            "status": 200,
            "json": {
              "foo" : "bar",
              "tt": "tt",
              "complex": {
                  "foo" : "bar",
                  "tt": "tt"
              }
            }
          }
        }]
      }]
    }]
  }
}]

enjoy it!

for Sa6r1na.