轻量级接口模拟工具moco使用

moco框架

moco框架介绍

​ mock用来模拟接口的,本次学习mock用的是moco框架,moco框架是github上的一个开源项目,可以模拟一些http,https,Socket协议

  • moco下载地址:moco下载地址
    • 我们选择moco-runner/选择版本号–>0.12.0/选择moco的jar文件(一般是最大的那个)–>moco-runner-0.12.0-standalone.jar
      1559570580355
    • Maven框架的依赖地址:
    <!-- https://mvnrepository.com/artifact/com.github.dreamhead/moco-runner -->
    <dependency>
        <groupId>com.github.dreamhead</groupId>
        <artifactId>moco-runner</artifactId>
        <version>0.12.0</version>
    </dependency>

我们的第一个Demo

  1. 我们先随便创建一个文件夹,目前用不用idea都可以
  2. 把我们刚才下载的Demo创建到目录下
  3. 创建我们的启动配置文件json
  4. 打开我们的命令行操作界面,然后进入我们的文件根目录下,执行命令:java -jar moco-runner-0.12.0-standalone.jar http -p 8888 -c 配置的json文件
    • 命令详解:
      • java -jar是启动jar文件的标准启动命令,如果失败,可能是电脑的jdk环境变量问题,请自行百度进行检查是否正确
      • 参数:http表示我们请求的方式
      • 参数:-p 8888 是指我们的启动端口参数,后面紧跟要启动的端口号
      • 参数:-c json配置文件 此参数主要指定我们的配置文件,可以使用绝对路径或者强制路径去指定我们的额moco的配置文件的位置
  5. 配置我们的json文件,如果复制过去,一定要删除注释
   [
     {
       "description": "这个是我们第一个的mock例子",
       "request": {
         "uri": "/demo"
       },
       "response": {
         "text": "I name is mock",
         "headers": {
           "Content-Type": "text/html;charset=gbk"
         }
       }
     }
   ]
  1. 在浏览器输入:http://localhost:8888/demo或者http://127.0.0.1:8888/demo

Moco框架的http协议的get方法的Mock实现

  • 照例我们呢还是创建一个json文件
  [
    {
      "description": "这个是我们第一个没有参数get请求",
      "request": {
        "uri": "/getDemo",
        "method": "get"
      },
      "response": {
        "text": "这是我们第一个没有参数的get请求",
        "headers": {
          "Content-Type": "text/html;charset=gbk"
        }
      }
    },
    {
      "description": "模拟一个带参数的get请求",
      "request": {
        "uri": "/getWithParam",
        "method": "get",
        "queries": {
          "name": "胡汉三",
          "age": "18"
        }
      },
      "response": {
        "text": "我胡汉三又回来了!!!",
        "headers": {
          "Content-Type": "text/html;charset=gbk"
        }
      }
    }
  ]
  • 然后启动我们的moco
  • 访问对应的路径返回我们的参数
    1559574249968

Moco框架的http协议的post方法的Mock实现

  • 这次我们依然是创建一个json文件
    • 这里有一个问题一定要注意!注意!!注意!!!
    • 那就是我们post请求的参数一定不能使用get带参请求的queries去请求,否则会报400参数不合法
    • 我们可以先使用forms去请求,也就是我们的基本的form表单数据类型
  [
    {
      "description": "模拟一个post请求",
      "request": {
        "uri": "/postDemo",
        "method": "post"
      },
      "response": {
        "text": "这个是我们第一个mock的post请求",
        "headers": {
          "Content-Type": "text/html;charset=gbk"
        }
      }
  
    },
    {
      "description": "这个是我们一个带参数的post请求",
      "request": {
        "uri": "/postWithParam",
        "method": "post",
        "forms": {
          "name": "胡汉三",
          "age": "18",
          "sex": "man"
        }
      },
      "response": {
        "text": "我胡汉三带着参数来了!!!",
        "headers": {
          "Content-Type": "text/html;charset=gbk"
        }
      }
    }
  ]
  • 然后换文件启动moco
  • 然后我们要换工具请求了,浏览器已经满足不了我们了,我们使用Postman
    1559575854461

我们如何在Moco框架中增加Cookies

在Moco框架中携带Cookies发送get请求
  • 增加json文件
  [
    {
      "description": "这是一个带cookies信息的get请求",
      "request": {
        "uri": "/getDemo/Cookies",
        "method": "get",
        "cookies": {
          "login": "true"
        }
      },
      "response": {
        "text": "这个是一个必须带cookies信息才可以访问的get请求",
        "headers": {
          "Content-Type": "text/html;charset=gbk"
        }
      }
    }
  ]
  • 使用Postman发送请求并添加cookies信息
    1559577180137
在Moco框架中携带Cookies发送post请求
  • 添加一个json文件
  [
    {
      "description": "这是一个带cookies信息的get请求",
      "request": {
        "uri": "/getDemo/Cookies",
        "method": "get",
        "cookies": {
          "login": "true"
        }
      },
      "response": {
        "text": "这个是一个必须带cookies信息才可以访问的get请求",
        "headers": {
          "Content-Type": "text/html;charset=gbk"
        }
      }
    },
    {
      "description": "这是一个带cookies信息的post请求",
      "request": {
        "uri": "/postDemo/Cookies",
        "method": "post",
        "cookies": {
          "login": "true"
        },
        "json": {
          "name": "胡汉三",
          "sex": "man"
        }
      },
      "response": {
        "status": 200,
        "json": {
          "code": "success",
          "msg": "胡汉三,请求成功了"
        }
      }
    }
  ]
  • 使用Postman发送请求,并添加cookies信息,添加json数据
  • 此时我们一定要注意,我们的请求中有中文,一定要设置编码,编码格式要和我们的json文件的格式保持一致
  • 由此可以得出结论,我们的请求格式归根结底第受限于我们json文件的编码格式
  • 我们可以在Postman中的henders中对Content-Type的值设置为:application/json;charset=utf8
    1559579024157

带有Header信息的请求

  • 创建json文件
  [
    {
      "description": "这个是一个带header信息的post请求",
      "request": {
        "uri": "/postHeader",
        "method": "post",
        "headers": {
          "content-type": "application/json;charset=utf8"
        },
        "json": {
          "name": "李四",
          "sex": "女"
        }
      },
      "response": {
        "json": {
          "code": "success",
          "msg": "李四,请求成功了"
        }
      }
    }
  ]
  • 使用postman发送请求
    1559615433778
    1559615448516

实现请求重定向

Demo01
  • 创建json文件,我们重定向到百度
  [
    {
      "description": "这个是一个重定向到百度的demo",
      "request": {
        "uri": "/redirect"
      },
      "redirectTo": "http://www.baidu.com"
    }
  ]
  • 使用浏览器进行验证
    1559615979060
Demo2
  • 创建json文件
  [
    {
      "description": "重定向到自己的一个网页",
      "request": {
        "uri": "/redirect/toPath"
      },
      "redirectTo": "/redirect/new"
    },
    {
      "description": "这个是被上面重定向的请求",
      "request": {
        "uri": "/redirect/new"
      },
      "response": {
        "text": "重定向成功了",
        "headers": {
          "Content-Type": "text/html;charset=gbk"
        }
      }
    }
  ]
  • 使用浏览器访问
    1559616503095
  • 使用postman访问
    1559616495470
  • 17
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值