Moco 详解

岁酱吖の 提交于 2020-01-06 07:36:26

一、下载及安装:

运行环境:

  • JAVA环境
  • linux

下载地址:https://github.com/dreamhead/moco

下载下来的是一个jar包,如:moco-runner-0.12.0-standalone.jar

把这个jar包上传到linux服务器上,然后在与moco-runner-0.12.0-standalone.jar同级的目录下创建 foo.json 文件:

[
  {
    "response" :
      {
        "text" : "Hello, Moco"
      }
  }
]

Moco的运行非常简单,只需要一行命令即可: java -jar <path-to-moco-runner> http -p <monitor-port> -c < configuration -file>

  • <path-to-moco-runner>:moco-runner-0.11.0-standalone.jar包的路径
  • <monitor-port>:http服务监听的端口
  • <configuration -file>:配置文件路径
java -jar moco-runner-0.12.0-standalone.jar http -p 9999 -c foo.json

通过浏览器访问服务器的9999端口:

返回正确就说明Moco服务搭建成功了。

虽然说服务运行没问题了,但是总觉得启动和停止很麻烦,现在用shell来写一个启动和停止的脚本

启动start.sh:

#!/bin/bash
dirWiremock=`pwd`
getCount=`ps -ef | grep "moco-runner" | grep -v "grep" |wc -l`
wiremock_jar=${dirWiremock}/moco-runner-0.12.0-standalone.jar
port=9999
exe_name=moco-runner
if [ $getCount -ne 0 ]; then
        echo $exe_name is already running with $ssu_pid_count processes
        echo $exe_name started failed
        exit 1;
else
        nohup java -jar ${wiremock_jar} http -p ${port} -c foo.json &
        echo "Start success!......"
fi

停止stop.sh:

#!/bin/sh
exe_name=moco-runner

# 进入可执行目录
base_path=$(cd `dirname $0`; pwd)
cd $base_path

# 停止进程
exe_pid_path=`pwd`
exe_pid_list=`ps -ef | grep $exe_name|grep -v 'grep'|awk '{print $2}'`
our_pid_list=""
for exe_pid in $exe_pid_list
do
        pid_path=`pwdx $exe_pid | awk '{print $2}'`
        if [ "$pid_path"x == "$exe_pid_path"x ]; then
                our_pid_list=$our_pid_list" "$exe_pid
        fi
done

if [ "$our_pid_list"x != "x" ]; then
        kill -9 $our_pid_list
        echo $exe_name process"$our_pid_list" killed
else
        echo $exe_name is not running
fi

运行shell脚本,启动和停止就方便多了。

二、Moco配置

启动服务之后,必然会根据需求stub出各种各样接口反馈,我们会把这个配置放在一个json文件中,启动Moco的时候,需要指定使用的配置文件路径,这样配置就可以生效了。Moco服务可以检测到配置文件的变更,假如你修改了配置文件,不需要重新启动Moco,服务照样可以生效。更详细的配置介绍请查看:https://github.com/dreamhead/moco/blob/master/moco-doc/apis.md

配置文件的工作原理大致如下: 

如何在配置文件添加注释

json不支持注释,想要添加注释的话,可以在description字段中加入描述 

约定请求Body

约定接口的uri

约定请求参数

约定请求方法

约定HTTP版本

约定请求头部

约定cookie

约定请求form

表单可以添加多项,多项的时候,必须全部匹配,接口才算匹配成功

约定以指定xml作为请求body

用xpath对请求进行匹配

约定以指定json作为请求body

用正则表达式对请求进行匹配

匹配操作

设置Response content

设置Response 状态码

设置Response HTTP版本

设置Response 头部

设置重定向

设置cookie

挂载文件

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!