一、下载及安装:
运行环境:
- 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 文件:
1[ 2 { 3 "response" : 4 { 5 "text" : "Hello, Moco" 6 } 7 } 8]
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:
1#!/bin/bash 2dirWiremock=`pwd` 3getCount=`ps -ef | grep "moco-runner" | grep -v "grep" |wc -l` 4wiremock_jar=${dirWiremock}/moco-runner-0.12.0-standalone.jar 5port=9999 6exe_name=moco-runner 7if [ $getCount -ne 0 ]; then 8 echo $exe_name is already running with $ssu_pid_count processes 9 echo $exe_name started failed 10 exit 1; 11else 12 nohup java -jar ${wiremock_jar} http -p ${port} -c foo.json & 13 echo "Start success!......" 14fi
停止stop.sh:
1#!/bin/sh 2exe_name=moco-runner 3 4# 进入可执行目录 5base_path=$(cd `dirname $0`; pwd) 6cd $base_path 7 8# 停止进程 9exe_pid_path=`pwd` 10exe_pid_list=`ps -ef | grep $exe_name|grep -v 'grep'|awk '{print $2}'` 11our_pid_list="" 12for exe_pid in $exe_pid_list 13do 14 pid_path=`pwdx $exe_pid | awk '{print $2}'` 15 if [ "$pid_path"x == "$exe_pid_path"x ]; then 16 our_pid_list=$our_pid_list" "$exe_pid 17 fi 18done 19 20if [ "$our_pid_list"x != "x" ]; then 21 kill -9 $our_pid_list 22 echo $exe_name process"$our_pid_list" killed 23else 24 echo $exe_name is not running 25fi
运行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

挂载文件
