moco 入门及问题解决
废话不多说
下载:
http://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/ 选择最新版本下载jar包
启动:
1:在本地jar包所在目录新建json文件,可自由定制request、respond,可选参数列表:"method", "headers", "json", "factory", "uri", "text","cookies", "xpaths", "json_paths", "version", "file", "queries", "path_resource", "forms"
其中request请求可填:
uri:请求地址
method:请求类型(get post)
cookies:带有cookies验证
headers:请求头,(例 “content-type”:“application/json”)
queries:填写请求参数,请求类型是get请求是时,使用该字段
Forms:填写请求参数,请求类型是post(类似form表单)请求是时,使用该字段
Json:填写请求参数,数据格式是json, get、post都可以使用
file:请求参数,封装在json文件时(文件地址)
response可填:
status:状态码
text:相应数据为文本数据
json:响应数据为json格式的数据
file:响应的数据是json文件(文件地址)
method = get时,参数提交用queries,=post时,用forms,否则报错
例:
新建文件confirmOrder.json,此为post方式不带参数的:
[{ "description" : "新订接受", "request":{ "uri":"/test/confirmOrder", "method":"post" }, "response":{ "text":"接受成功~", #返回text为中午显示会乱码,故加上headers告诉浏览器编码方式是gbk "headers":{ "Content-Type":"text/html;charset=gbk" } } }]
2:启动系统命令,cd到jar包所在目录,执行命令:java -jar ./moco-runner-0.12.0-standalone.jar http -p 8888 -c confirmOrder.json
执行成功会显示自定义端口号8888,如图:
因为json文件中定义了url ,此时我们访问 http://localhost:8888/test/confirmOrder 就能得到自定义的response返回了。
注意:
此时遇到的问题:定义了method = post之后不能直接在浏览器访问该url,浏览器提交是get方式,会报400错误,如图:
解决办法:使用postman或jmeter 用post方式提交请求。
成功后返回如下图:
post方式加上参数后,请求:
[{ "description" : "新订接受", "request":{ "uri":"/test/confirmOrder", "method":"post", "forms":{ "orderID":"222", "optionID":"111", "env":"uat" } }, "response":{ "text":"接受成功~", "headers":{ "Content-Type":"text/html;charset=gbk" } } }]
请求方式:在form-data中填写参数,请求
重定向:
"request":{...},
"redirectTo":“http://localhost:8888/abc.test.com",
"response":{...}