Moco 详解

摘要:
/bin/shexe_ Name=moco runner#输入可执行目录base_ path=$cd$base_ path#停止进程exe_pid_path=`pwd` exe_pid_list=`ps-ef|grep$exe_Name | grep-v'rep'|awk'{print$2}'`our_ pid_list=“”forexe_pidin$exe_pid_ listdopid_path=`pwdx$exe_pid | awk'{print$2}'如果[“$pid_path”x==“$exe_sid_path”x];thenour_pid_list=$our_pid_list“”$exe_pidfidoneif[“$our_pid _list”x!=“x”];然后kill-9$our_pid_listecho$exe_nameprocess“$our_pid _list”killedelseecho$exe_Nameisnotrunningfi运行shell脚本,使其更容易启动和停止。Moco服务可以检测配置文件中的更改。如果您修改了配置文件,服务仍然可以在不重新启动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

Moco 详解第1张

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

Moco 详解第2张

返回正确就说明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

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

Moco 详解第3张

如何在配置文件添加注释

json不支持注释,想要添加注释的话,可以在description字段中加入描述 
image_1aukces4c1bld1ilv120vtc713rk1g.png-21.5kB

约定请求Body

image_1aukcg2219uc4a89v2eia169i1t.png-63.5kB

约定接口的uri

image_1aukcgr1h1pvg1iqede15mtjtv2a.png-35.2kB

约定请求参数

image_1aukcheemo95pmp1q351n0vjq12n.png-40.6kB

约定请求方法

image_1aukci164cq717av19nc1cp0b0q34.png-32.7kB

约定HTTP版本

image_1aukcin2p1cnoenf1nfe1hn895u3h.png-38.2kB

约定请求头部

image_1aukp23qh1io01g611k67l49ie9.png-47.6kB

约定cookie

image_1aukp2ppph2215lv4mp165n1begm.png-45.5kB

约定请求form

image_1aukp3eip1unv1s971l1s8ke1pr713.png-47.1kB

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

约定以指定xml作为请求body

image_1aukp4l8rblj9p712cq13au1nlc1g.png-69.9kB

用xpath对请求进行匹配

image_1aukp54ud10dcbhi1a981sii1j1t.png-47.8kB

约定以指定json作为请求body

image_1aukp62mg1c1p1ilpa371fg71okd2a.png-118.5kB

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

image_1aukp6kjk1cgktok1ksl3pl11ra2n.png-50.1kB

匹配操作

image_1aukp79rk6stah19u7138o10df34.png-132kB

设置Response content

image_1aukpa21f1nt21hrq15iv5111lcc3h.png-71kB

设置Response 状态码

image_1aukpam111jae1kj31trj1vqau2d3u.png-50.7kB

设置Response HTTP版本

image_1aukpb88b17f119i1oatsdi1pti4b.png-58.3kB

设置Response 头部

image_1aukpboqh15l6ib31gvrcjo1dbq4o.png-45.9kB

设置重定向

image_1aukpca591qrht381uv31cvt43g55.png-39.9kB

设置cookie

image_1aukpcqun1tq911n314fv1o8r12hi5i.png-42.1kB

挂载文件

image_1aukpdacf1sq3p241s14qbqdnb5v.png-34.4kB

免责声明:文章转载自《Moco 详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇台式机安装CentOS7.6 Minimal ISO系统并增加图形化桌面Linux下对LVM逻辑卷分区大小调整 [针对xfs和ext4文件系统]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HTTP,URL,FS 模块搭建一个静态WEB服务器

WEB服务器: 一般指网站服务器,是指驻留在因特网上某种类型计算机的程序,可以向浏览器等Web 客户端提供文档,也可以放置网站文件让全世界浏览,还可以放置数据文件,让全世界下载,目前最主流的Web服务器有 Apache,Nginx,IIS等。 NodeJS 创建一个WEB服务器, 可以让我们访问Web服务器上面的网站 可以让我们下载Web服务器上面的文件...

http 带cookie值的get请求(关联测试)

本文主要包含一下五点。 1、如何get请求如何获取cookie信息。 getCookieStore() 2、如何发送带cookie信息的get 请求。setCookieStore() 3、testng依耐测试,带cookie信息的get请求需要依耐于获取cookie信息的请求。 @Test(dependsOnMethods = {"getTestCooki...

python3 + Django + Mysql + Vue + Element-UI 学习笔记:从0搭建前后端分离的测试工具平台

2020.03.23  INIT 中间换了工作,好久没写了 2021.05.08  新增:页面预览、功能实现样例(含后端接口、前端页面、配置绑定) 2021.05.13  新增:首页增加访问人数统计功能 2021.05.19  新增:用户信息查询接口、页面开发 2021.06.10  新增:生成图片功能 2021.06.18  新增:文本处理工具下载页面...

logstash配置文件详解

logstash配置文件详解 logstash pipeline 包含两个必须的元素:input和output,和一个可选元素:filter。 从input读取事件源,(经过filter解析和处理之后),从output输出到目标存储库(elasticsearch或其他)。 在生产环境使用logstash,一般使用都将配置写入文件里面,然后启动logst...

NODE_ENV判断node服务器环境的设置

build->webpack.sit.conf.js 拷贝webpack.prod.conf.js,新建webpack.sit.conf.js、webpack.uait.conf.js,根据环境修改env的引入文件 config->sit.env.js build->bulid.js src -> config文件夹 -&...

CORS跨域实现思路及相关解决方案

本篇包括以下内容: CORS 定义 CORS 对比 JSONP CORS,BROWSER支持情况 主要用途 Ajax请求跨域资源的异常 CORS 实现思路 安全说明 CORS 几种解决方案 自定义CORSFilter Nginx 配置支持Ajax跨域 支持多域名配置的CORS Filter keyword:cors,跨域,ajax,403,fi...