Mock服务moco系列(一)- 简介、第一个Demo、Get请求、Post请求

2022-07-25 17:32:16 浏览数 (1)

Mock服务moco系列(一)

简介、第一个Demo、Get请求、Post请求

目录

  • 1、简介
  • 2、下载
  • 3、第一个Demo
    • 3.1、配置文件
    • 3.2、启动moco
    • 3.3、访问moco
  • 4、Get请求
  • 5、Post请求

1、简介

1、什么是mock?

mock翻译过来有模拟的意思。

2、什么是moco?

moco是一个简单搭建的Stub框架。Stub可翻译为桩,指用来替换一部分功能的程序段。桩程序可以用来模拟已有程序的行为(比如一个远端机器的过程)或是对将要开发的代码的一种临时替代。简单来说,moco就是解决了开发前端时没有后端支持,开发接口时依赖没有到位的尴尬场景等。

主要特点:

(1)只需要简单的配置request、response等即可满足要求,支持http、https、socket等。

(2)支持在request 中设置headers、cookies等。

(3)对GET、POST、PUT、DELETE等请求方式均支持,很适合web开发。

(4)无需环境配置,有Java环境即可。

(5)修改配置后,立刻生效。只需要维护接口,也就是契约即可。

(6)对可能用到的数据格式都支持,如json、text、xml、file等。

官方网址:

https://github.com/dreamhead/moco

2、下载

官方下载地址:

https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/

下载相应版本即可,本篇使用0.12.0版本,下载moco-runner-0.12.0-standalone.jar文件。

3、第一个Demo

3.1、配置文件

moco配置文件格式必须是json格式。配置文件是个数组,也就是说,可以在一个文件中配置多个接口的请求和响应。

1、配置文件常用字段:

代码语言:javascript复制
description:用来描述这个会话的目的,它只是用作注释,在运行时将被忽略。
request:请求内容。
response:响应内容。
uri:请求关注点。
method:基于指定的HTTP方法(get、post、put、delete、HEAD)。
queries:get请求参数。
forms:post请求参数。
text:文本。
json:Json格式。
file:文件。
headers:信息头。
cookies:cookie信息。
status:响应状态代码。
redirectTo:将请求重定向到指定的url上。
match:正则表达式。
latency:延迟。
template:模板。

2、创建一个Demo示例(01Demo.json)。

description为此接口描述。

请求内容填写在request里,响应内容填写在response里。

响应内容格式为text文本格式。

请求地址格式为:IP 端口号 uri拼接而成(例如http://10.106.29.102:8083/demo)

内容如下:

代码语言:javascript复制
[
    {
        "description":"Moco Demo",
        "request":{
            "uri":"/demo"
        },
        "response":{
            "text":"Hello Moco"
        }
    }
]

3.2、启动moco

命令行进入下载完成的moco-runner-0.12.0-standalone.jar包的目录。

输入启动moco服务命令:

代码语言:javascript复制
java -jar moco-runner-0.12.0-standalone.jar http -p 8083 -c <配置文件路径>/XXX.json
注:
-p 指定moco服务端口
-c 配置文件路径及文件名

例如:

java -jar moco-runner-0.12.0-standalone.jar http -p 8083 -c 01Demo.json

如图所示:moco服务启动,端口号为8083。

3.3、访问moco

1、打开浏览器访问moco服务地址。

(1)本地访问:

http://localhost:8083/demo

或者:

http://127.0.0.1:8083/demo

(2)远程访问(IP为10.106.29.102):

http://10.106.29.102:8083/demo

2、访问结果显示。

3、控制台显示moco服务请求与响应的信息。

4、Get请求

1、创建02Get.json配置文件。

该配置文件有2个接口(没有参数的Get请求、有参数的Get请求)。

"method":"get"为Get请求,如果不添加此字段,接口默认也是Get请求。

queries为Get请求参数(添加2个参数username、password与其对应值)。

内容如下:

代码语言:javascript复制
[
    {
        "description":"Get请求(没有参数)",
        "request":{
            "uri":"/getdemo",
            "method":"get"
        },
        "response":{
            "text":"Moco Get"
        }
    },
    {
        "description":"Get请求(有参数)",
        "request":{
            "uri":"/getdemo2",
            "method":"get",
            "queries":{
                "username":"admin",
                "password":"123456"
            }
        },
        "response":{
            "text":"admin,123456"
        }
    }
]

2、输入启动moco服务命令。

java -jar moco-runner-0.12.0-standalone.jar http -p 8083 -c 02Get.json

3、浏览器访问moco服务地址。

(1)Get请求(没有参数)

访问地址:

http://localhost:8083/getdemo

访问结果显示:

(2)Get请求(有参数)

访问地址:

http://localhost:8083/getdemo2?username=admin&password=123456

访问结果显示:

5、Post请求

1、创建03Post.json配置文件。

该配置文件有2个接口(没有参数的Post请求、有参数的Post请求)。

"method":"post"为Post请求。

forms为Post请求参数(添加2个参数username、password与其对应值)。

内容如下:

代码语言:javascript复制
[
    {
        "description":"Post请求(没有参数)",
        "request":{
            "uri":"/postdemo",
            "method":"post"
        },
        "response":{
            "text":"Moco Post"
        }
    },
    {
        "description":"Post请求(有参数)",
        "request":{
            "uri":"/postdemo2",
            "method":"post",
            "forms":{
                "username":"admin",
                "password":"123456"
            }
        },
        "response":{
            "text":"admin,123456"
        }
    }
]

2、输入启动moco服务命令。

java -jar moco-runner-0.12.0-standalone.jar http -p 8083 -c 03Post.json

3、Postman访问moco服务地址。

打开已安装好的Postman。

(1)Post请求(没有参数)

协议类型选为POST

访问地址:http://localhost:8083/postdemo

点击Send,访问结果显示:

(2)Post请求(有参数)

协议类型选为POST

访问地址:http://localhost:8083/postdemo2

Body添加参数(参数名与参数值)。

点击Send,访问结果显示:

0 人点赞