Moco框架:github上面一个开源的项目,可以模拟http、https等协议。
github网址 :moco源码
下载moco_jar包的网址:moco-jar包下载
启动模拟服务器的命令:
java -jar ./moco-runner-0.11.0-standalone.jar http -p 8899 -c startup1.json
jar包:moco-runner-0.11.0-standalone.jar
和 json文件:startup1.json
在同一个路径下,故采用当前路径 ./moco-runner-0.11.0-standalone.jar
http:表示使用http协议
8899:端口号
[
{
"description": "这是我们的第一个moco例子",
"request": {
"uri": "/demo"
},
"response": {
"text": "第一个moco框架demo"
}
}
服务的热部署:当修json配置文件时,服务自动重启更新,不影响用户的使用。
输入网址:http://localhost:8899/getWithParam?name=huhansan&age=18
来访问带参数的get请求。
带参数&不带参数的get请求的json文件配置:
参数:“queries”
[
{
"description": "模拟一个没有参数的get请求",
"request": {
"uri": "/getdemo",
"method": "get"
},
"response": {
"text": "这是一个没有参数的get请求"
}
},
{
"description": "模拟一个带参数的get请求",
"request": {
"uri": "/getWithParam",
"method": "get",
"queries": {
"name": "huhansan",
"age": "18"
}
},
"response": {
"text": "我胡汉三又回来了!!!"
}
}
]
浏览器只能使用Get的方式去访问服务。
如果需要使用Post的方法去访问服务,则可使用JMeter去使用Post的方式去访问。
不带参数&带参数的Post请求的json配置文件:
参数:“forms”
[
{
"description": "模拟一个不带参数post请求",
"request": {
"uri": "/postDemo",
"method": "post"
},
"response": {
"text": "这是我的第一个mock的post请求"
}
},
{
"description": "这是一个带参数的post请求",
"request": {
"uri": "postWithParam",
"method": "post",
"forms": {
"name": "huhansan",
"sex": "male"
}
},
"response": {
"text": "我胡汉三带着参数回来了!!!"
}
}
]
Cooki的填写:名称、值、域(服务器地址)、路径。
可使用JMeter来添加Cookie参数。
Post请求中配置json数据,在request和response中都可以配置,json请求数据写入到请求的BodyDate中。
带Cookies参数的get和post请求的json配置:
[
{
"description": "这是一个带cookie信息的get请求",
"request": {
"uri": "get/with/cookies",
"method": "get",
"cookies": {
"login": "true"
}
},
"response": {
"text": "这是一个需要携带cookies信息才能访问的get请求"
}
},
{
"description": "这是一个带cookies信息的post请求",
"request": {
"uri": "/post/with/cookies",
"method": "post",
"cookies": {
"login": "true"
},
"json": {
"name": "huhansan",
"age": "18"
}
},
"response": {
"status": 200,
"json": {
"huhansan":"success",
"status": "1"
}
}
}
]
headers信息:一般是对数据格式的要求。
带header信息的json配置文件,json数据:
[
{
"description": "这是一个带header信息的post请求",
"request": {
"uri": "post/with/headers",
"method": "post",
"headers": {
"conten-type": "application/json"
},
"json": {
"name": "wanglaosi",
"sex": "female"
}
},
"response": {
"json": {
"wanglaosi": "success",
"status": "1"
}
}
}
]
“redirectTo”
:重定向到别的网页
[
{
"description": "重定向到百度",
"request": {
"uri": "/redirect"
},
"redirectTo": "http://www.baidu.com"
},
{
"description": "重定向到一个自己的网页上",
"request": {
"uri": "redirect/topath"
},
"redirectTo": "redirect/new"
},
{
"description": "这是被重定向到的请求",
"request": {
"uri": "redirect/new"
},
"response": {
"text": "重定向成功了!!!"
}
}
]