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"
}
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
原文:https://www.cnblogs.com/testlife2020/p/12922200.html