Moco 详解
一、下载及安装:
运行环境:
- 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
表单可以添加多项,多项的时候,必须全部匹配,接口才算匹配成功