Mock就是模拟接口的。本文学习Mock的 Moco开源框架。
Moco源码和jar下载地址: git jar 下载moco-runner-xxxx-standalone.jar
Step1: 在项目中创建一个package:moco,并将下载的jar包放在该package下。
Step2:创建一个json文件,格式如下:
[
{
"description":"This is my first mock demo",
"request":{
"uri":"/demo"
},
"response":{
"text":"This is response"
}
}
]
Step3:cmd进入到该package下,运行命令:java -jar ./moco-runner-0.12.0-standalone.jar http -p 8888 -c startup1.json
在命令行中出现,则命令运行成功
29 Apr 2019 14:31:54 [main] INFO Server is started at 8888
29 Apr 2019 14:31:55 [main] INFO Shutdown port is 52901
Step4:打开浏览器,输入 localhost:8888.在浏览器上就可以看到我们在json文件中定义的数据。
1. 不带参数的get实现:
[
{
"description":"This is Get request without paramter",
"request":{
"uri":"/getdemo",
"method":"get"
},
"response":{
"text":"This is response for Get request without paramter "
}
}
]
2.带参数的get实现:
{
"description":"This is Get request with paramter",
"request":{
"uri":"/getwithparam",
"method":"get",
"queries":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"text":"This is response for Get request with paramter "
}
}
在浏览器中访问:http://localhost:8888/getwithparam?name=zhangsan&age=18 就可以返回定义的json数据。
1.不带参数的post请求
[
{
"description":"This is Post request",
"request":{
"uri":"/postdemo",
"method":"post"
},
"response":{
"text":"This is Post response"
}
}
]
注意的是post请求不能直接在浏览器中访问,这个时候我们就需要借助jmeter postman等测试工具进行post请求的测试了。具体方法这里不演示。
2.带参数的post请求实现
{
"description":"This is Post request with paramter",
"request":{
"uri":"/postwithparam",
"method":"post",
"forms":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"text":"This is Post response with paramter"
}
}
1.带cookies信息的get请求
{
"description":"This is Get request with cookies",
"request":{
"uri":"/get/with/cookies",
"method":"get",
"cookies":{
"login":"true"
}
},
"response":{
"text":"This is get response with cookies"
}
}
2.带cookies信息的post请求
{
"description":"This is Post request with cookies",
"request":{
"uri":"/post/with/cookies",
"method":"post",
"cookies":{
"login":"true"
}
"json":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"status":200,
"json":{
"zhangsan":"success",
"status":"1"
}
}
}
Header请求头信息的格式在get和post请求中是一致的。
{
"description":"This is Post request with header",
"request":{
"uri":"/postwithheader",
"method":"post",
"headers":{
"content-type":"application/json"
},
"json":{
"name":"zhangsan",
"age":"18"
}
},
"response":{
"text":"This is Post response with paramter"
}
}
1.重定向到baidu
{
"description":"redirect to www.baidu.com",
"request":{
"uri":"/redirect"
},
"redirectTo":"http://www.baidu.com"
}
2.重定向到自己网站的某个地址
{
"description":"redirect to my path",
"request":{
"uri":"/redirect2"
},
"redirectTo":"redirected"
},
{
"description":"This is my path",
"request":{
"uri":"/redirected"
},
"response":{
"text":"redirect success!"
}
}
如果喜欢作者的文章,请关注"写代码的猿"订阅号以便第一时间获得最新内容。本文版权归作者所有,欢迎转载.