mock接口

一:moco安装及启用

Moco能做什么?

可以让我们快速搭建起一套接口服务,这样做的好处是:

1、开发没有开发完成时,我们就有一套可供调试代码的环境;

2、前端同学也可以使用这套环境来联调;

3、可以与开发同学一起把接口入参、返回值等规范在开发前就一起定好。

如果中间接口有修改,Moco修改也非常的方便。

Moco框架是Github上的一个开源项目,可以模拟一些http、https、socket协议。

1、jar下载

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

这下面有若干版本,选择0.11.0,下载moco-runner-0.11.0-standalone.jar

2、新建一个项目,创建一个文件夹,将jar存在此处

3、创建json文件,

[
  {
    "description":"这是我们的第一个mock例子",
    "request":{
      "uri":"/demo"   //访问路径
    },
    "response":{
      "text":"第一个moco框架的Demo!"
    }
  }
]

4、运行项目,在idea中的Terminal中,进入到cd mock中

输入java -jar /.moco-runner-0.11.0-standalone.jar http -p 8088 -c startup1.json

在浏览器中:http://localhost:8088/demo 即可。

存在问题:1、有可能指定端口被占用,换个端口重新启动

​ 2、返回的响应乱码,在response中增加Headers

"headers":{
  "Content-Type":"text/html;charset=gbk"
}

二、Http协议类型

1、模拟一个带参数的get请求

{
  "description":"有参数get请求",
  "request":{
    "uri":"/getWithParam",
    "method": "get",
    "queries":{
        "name":"zhang",
        "age": "18"
    }
  },
  "response":{
    "text":"这是一个有参的get请求!"
  }
}

2、模拟带参数的post请求

post的传参和get不一样,get里面用的 :

"queries": {

"name": "xiaoxiao",

"sex": "woman"}

但是 post 是用的 :

"forms":{

"name":"xiaoxiao",

"sex":"woman"

}

当然也可以用json格式,后续会介绍到:

"json": {

"name": "xiaoxiao",

"age": "18"

}

因为post无法使用浏览器请求,可以使用postman或者Jmeter调用:

3、加入Cookies

```javascript
"cookies":{
	"login":"true"
}

在Jmeter中增加Cookie管理器。login=true; path=/get/with/cookies(访问路径); domain=localhost;

4、重定向

"redirectTo":"http://123.sogou.com"

访问后跳转到搜狗。

现在有一个问题未解决,当Json中的数据含有中文时,请求报400。是因为中文乱码导致请求失败。
参考:https://www.jianshu.com/p/5e0de414bb01

猜你喜欢

转载自www.cnblogs.com/testlife2020/p/12922200.html