目录
一、前言
Mock测试:在测试过程中,对于某些不容易构造或者不容易获取的比较复杂的对象,用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。在实际工作中,后端接口未开发完成时,前端界面却开发完成,可以使用Mock的方式,来给前端返回想要的数据
二、Moco框架环境搭建
2.1 下载jar包
2.2 创建json文件
- 在目录下创建一个json文件,并配置请求响应即可
[ { "description": "第一个接口", "request": { "uri":"/firstDemo" }, "response": { "text": "firstDemo" } } ]
2.3 启动服务
- 命令格式
java -jar jar包路径 http -p 监听端口 -c json配置文件
- 实际效果
java -jar ./moco-runner-0.11.1-standalone.jar http -p 9090 -c first.json
- 提示:使用
Ctrl+C
命令可以退出并停止服务
,如果需要修改json文件内容,修改保存
后会自动重启服务
,无须自己重启。
2.4 效果展示
- 由于上面配置的不是Post请求,可以直接
http://localhost:端口号/URI
访问,并在界面上查看响应结果。
2.5 响应中文显示问题
- 如果响应信息中有中文,为了中文显示正常,在response中添加下面内容即可。
"headers":{ "Content-Type":"text/html;charset=gbk" }
三、Mock框架使用
Moco框架的基本使用就是上面这些内容,关于详细的各种请求的配置方式,可以参考官方文档:这是官方文档
3.1 Get请求
-
在request中添加
"method": "get"
即可。{ "description": "这是一个get请求的demo", "request": { "uri": "/getDemo", "method": "get" }, "response": { "text": "这是一个没有参数的get请求", "headers":{ "Content-Type":"text/html;charset=gbk" } }
3.2 带参数的Get请求
- 在request中添加
"queries": {}
即可。{ "description": "这是一个带参数的Get请求的Demo", "request": { "uri": "/getWithParam", "method": "get", "queries": { "name": "张三", "sex": "20" } }, "response": { "text": "我张三会来了", "headers":{ "Content-Type":"text/html;charset=gbk" } } }
3.3 Post请求
-
在request中添加
"method": "post"
即可。{ "description": "这是一个不带参数的post请求", "request": { "uri": "/postDemo", "method": "post" }, "response": { "text": "这是一个不带参数的Post请求", "headers":{ "Content-Type":"text/html;charset=gbk" } } }
3.4 带参数的Post请求
- 在request中添加
"forms": {}
即可。{ "description": "这是一个带参数的post请求", "request": { "uri": "/postWithParam", "method": "post", "forms": { "name": "张三", "sex": "man" } }, "response": { "text": "我张三带着参数回来了", "headers":{ "Content-Type":"text/html;charset=gbk" } } }
3.5 返回cookie信息的Get请求
- 返回信息response中添加
"cookies":{}
即可{ "description":"这是一个会返回cookie信息的get请求", "request": { "uri": "/getCookies", "method": "get" }, "response": { "cookies": { "login": "true" }, "text": "恭喜你获得cookies信息成功", "headers":{ "Content-Type":"text/html;charset=gbk" } } }
3.6 带cookie信息的get请求
- 在请求信息request中添加
"cookies":{}
即可。{ "description": "这是一个带有cookie信息才能访问的get请求", "request": { "method": "get", "uri": "/getWithCookies", "cookies": { "login": "true" } }, "response": { "text": "这是一个需要携带cookies才能访问get请求", "headers":{ "Content-Type":"text/html;charset=gbk" } } }
3.7 带cookie信息的post请求
- 在请求信息request中添加
"cookies":{}
即可。{ "description": "这是一个需要带有cookie信息才能访问的post请求", "request": { "method": "post", "uri": "/postWithCookie", "cookies": { "login":"true" }, "json": { "name": "张三", "age": "18" } }, "response": { "status":200, "json": { "name":"张三", "status": "1" } } }
3.8 带header信息的post请求
- 在请求request中添加
"headers":{}
即可。{ "description": "这是一个带header信息的post请求", "request": { "method": "post", "uri": "/postWithHeaders", "json": { "a":"success", "status": "1" }, "headers": { "Content-Type": "application/json" } }, "response": { "json": { "李四":"success", "status": "1" } } }
四、代码汇总下载
上面这些各种请求的情况,都汇总中一个json中了。且由于post请求在页面中验证不了是否成功,使用jmeter验证接口是否成功。
- 百度云下载:百度云下载 提取码:l8fo
参考链接汇总(自用):
https://blog.csdn.net/lt326030434/article/details/80339397
https://blog.csdn.net/qq_41829492/article/details/88093147
https://blog.csdn.net/wangyiyice/article/details/53586012
https://www.cnblogs.com/hanschen-coder/p/6528829.html