一.如何获得moco框架对应jar包,在如下github链接获取:
https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/
文件名称为:moco-runner-0.11.0-standalone.jar
二.moco框架基本命令:
java -jar ./moco-runner-0.11.0-standalone.jar http -p 8888 -c json配置文件
说明:
./:表示当前目录下,后面跟的是moco框架对应的jar包名称
http:表示服务类型,如http、https等
-p:表示端口号
json配置文件:可以是绝对路径或者相对路径,看你存放json文件的位置
三.带参数和不带参数的get方法的实现
说明:带参数的化,请求url中的参数,一定要和json中配置的保持一致,否则报错找不到地址
[
{
"description": "模拟一个没有参数的get请求",
"request": {
"uri": "/getdemo",
"method": "get"
},
"response": {
"headers": {
"Content-Type": "text/html;charset=gbk"
},
"text": "这是一个没有参数的get请求"
}
},
{
"description": "模拟一个带参数的get请求",
"request": {
"uri": "/getwithparam",
"method": "get",
"queries": {
"name": "huhansan",
"age": "18"
}
},
"response": {
"headers": {
"Content-Type": "text/html;charset=gbk"
},
"text": "我胡汉三又回来啦!!!"
}
}
]
四.带参数和不带参数的post方法的实现
说明:post只能通过jmeter等工具调用,不能直接在浏览器输入url调用
[
{
"description": "模拟一个post请求",
"request": {
"uri": "/postdemo",
"method": "post"
},
"response": {
"headers": {
"Content-Type": "text/html;charset=gbk"
},
"text":"这是我的第一额mock的post请求"
}
},
{
"description": "这是一个带参数的post请求",
"request": {
"uri": "/postwithparam",
"method": "post",
"forms": {
"name": "huhansan",
"sex": "man"
}
},
"response": {
"headers": {
"Content-Type": "text/html;charset=gbk"
},
"text": "我胡汉三带着参数又回来啦!!!"
}
}
]
五.带cookies信息的get请求
[
{
"description": "这是一个带cookies信息的get请求",
"request":{
"uri": "/get/with/cookies",
"method": "get",
"cookies": {
"login": "true"
}
},
"response": {
"headers": {
"Content-Type": "text/html;charset=gbk"
},
"text": "这是一个需要携带cookies信息才能访问的get请求"
}
}
]
六.带cookies信息的post请求
{
"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信息的mock请求
[
{
"description": "这是一个带header信息的post请求",
"request": {
"uri": "/post/with/headers",
"method": "post",
"headers": {
"content-type": "application/json"
},
"json": {
"name": "wanglaowu",
"sex": "woman"
}
},
"response": {
"json": {
"wanglaowu": "success",
"status": "1"
}
}
}
]
八.实现请求重定向
[
{
"description": "重定向到百度",
"request": {
"uri": "/redirect"
},
"redirectTo": "http://www.baidu.com"
},
{
"description": "重定向到一个自己的网页上",
"request": {
"uri": "/redirect/topath"
},
"redirectTo": "/redirect/new"
},
{
"description": "这是被重定向到的请求",
"request": {
"uri": "/redirect/new"
},
"response":{
"headers": {
"Content-Type": "text/html;charset=gbk"
},
"text": "重定向成功啦"
}
}
]
工具使用的坑:
1.模拟post方法的时候,request内不要带请求参数,因为返回报文都是写死的了;
2.headers内的设置不需要很多,仅设置需要且有用的就好;
3.注意中文转换成对应的unicode码
4.最重要的一条:response返回报文如果格式是json的,需要加json这个key
"response":
{
"status": 1,
"json": {
"msg":"",
"result":{
"err": 56,
"msg": "\u8c03\u7528\u0047\u0045\u004f\u51fa\u9519\uff1a\u0020\u0054\u0043\u0050\u63a5\u6536\u8fd4\u56de\u6570\u636e\u65f6\u5f02\u5e38\u0020\u0054\u0043\u0050\u901a\u4fe1\u5f02\u5e38\uff0c\u65e0\u6cd5\u5efa\u7acb\u8fde\u63a5"
}
}
}