接口模拟之moco框架

接口模拟之moco框架

一、背景

在软件开发中,一般都是前后端分离,但前后端开发进度因为各种原因往往无法匹配,导致前端想调用接口时,后端却还没有开发完毕,此时前端迫切需要模拟出后端反馈的数据,继续推进前端开发工作进度。

在测试工作中,同样存在这样的矛盾,测试工作会受到后端接口开发的限制,所以测试同样需要模拟接口返回数据,推进测试工作进度。

二、环境准备

  • 安装JDK1.8

    下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  • 安装 moco-runner-0.12.0-standalone.jar

    下载地址: http://central.maven.org/maven2/com/github/dreamhead/moco-runner/0.12.0/

三、环境搭建

  • 下载安装JDK1.8,并进行环境变量的配置,若安装配置无误,那么在命令行中执行java命令时,会出现相应的提示。
C:\Users\Administrator>java
  • 安装moco,将 moco-runner-0.12.0-standalone.jar 和接口配置json文件放在同一目录下,如图:
  • 启动moco服务

    首先,切换到moco-runner-0.12.0-standalone.jar文件夹,然后执行打开命令行,输入命令

    java -jar moco-runner-0.12.0-standalone.jar 协议类型  -p 端口号 -c json配置文件
    

执行命令,若显示如下信息,则服务正常启动。

java -jar moco-runner-0.12.0-standalone.jar http -p 8801 -c demo.json

打开浏览器,验证服务是否正常启动,在浏览器中输入访问地址127.0.0.1:8801/demo,注意/demo是demo.json文件中配置的访问接口。

四、常用请求响应格式示例

1、第一个demo示例
[
  {
    "description":"这是一个moco例子",
    "request":{
        "uri":"/demo"
    },
    "response":
    {
        "text":"Hello,Moco",
        "status": "200"
    }
  }
]
2、get请求,不带参数
[
    {
    "description":"这是一个get请求,不带参数",
    "request":{
        "uri":"/WithGet",
        "method": "get"
    },
    "response":
    {
        "headers": {
            "Content-Type": "text/plain; charset=GBK"
        },
        "text":"这是一个GET请求,不带参数",
        "status": "200"
    }
  }
]
3、get请求,带参数
[
    {
    "description":"这是一个get请求,带参数",
    "request":{
        "uri":"/GetWithQuery",
        "method": "get",
        "queries": {
            "username": "john",
            "password": "123123"
        }
    },
    "response":
    {
        "headers": {
            "Content-Type": "text/plain; charset=GBK"
        },
        "text":"这是一个GET请求,带参数",
        "status": "200"
    }
  },
]
4、post请求,带参数
[
    {
    "description":"这是一个post请求,带参数",
    "request":{
        "uri":"/PostWithQuery",
        "method": "post",
        "queries": {
            "username": "john",
            "password": "123123"
        }
    },
    "response":
    {
        "text":"这是一个POST请求,带参数",
        "status": "200",
        "headers": {
            "Content-Type": "text/plain; charset=GBK"
        }
    }
  }
]
5、post请求,不带参数
[
    {
        "description": "这是一个post请求,不带参数",
        "request": {
            "uri": "/WithPost",
            "method": "post"
        },
        "response": {
            "text": "这是一个post请求,不带参数",
            "status": "200",
            "headers": {
                "Content-Type": "text/plain; charset=GBK"
            }
        }

    }
]
6、post请求,带cookie参数
[
    {
        "description": "这是一个post请求,带cookie参数",
        "request": {
            "uri": "/PostWithCookie",
            "method": "post",
            "cookies": {
                "token": "123123"
            }
        },
        "response": {
            "text": "这是一个post请求,带cookie参数",
            "status": "200",
            "headers": {
                "Content-Type": "text/plain; charset=GBK"
            }
        }

    }
]
7、post请求,带forms参数
[
    {
        "description": "这是一个post请求,带forms参数",
        "request": {
            "uri": "/PostWithForm",
            "method": "post",
            "forms": {
                "username": "jake",
                "password": "123123"
            }
        },
        "response": {
            "text": "这是一个post请求,带forms参数",
            "status": "200",
            "headers": {
                "Content-Type": "text/plain; charset=GBK"
            }
        }

    }
]
8、重定向
[
    {
        "description": "这是一个重定向",
        "request": {
            "uri": "/redirect",
            "method": "get"

        },
        "redirectTo": "http://www.baidu.com"

    }
]

你可能感兴趣的:(接口模拟之moco框架)