一、什么是接口Mock测试?
mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。
使用场景
1、接口功能尚未开发完成,此时如何开展接口测试工作?
2、项目开发时涉及到第三方的支付接口时,开发阶段如何进行调试?
3、前端开发已写好页面,后台接口还未实现,前端人员想要调试页面的效果,没有数据
二、使用方式
国人开发基于Java的开源项目,能够快速搭建Mock服务
https://github.com/dreamhead/moco
使用方式:jar包运行
Central Repository: com/github/dreamhead/moco-runner/1.1.0
下载jar包:moco-runner-1.1.0-standalone.jar ——standalone表示可以单独运行的jar包
三、启动Moco服务
Step1:编写json配置文件
[
{
"description": "第一个请求响应",
"response": {
"text": "hello world"
}
}
]
Step2:加载jar包启动服务
在终端执行moco
java -jar moco-runner-1.1.0-standalone.jar http -p 9999 -c test.json
mac: java -jar ./moco-runner-1.1.0-standalone.jar http -p 9999 -c test.json
http:指定http协议
-p:指定启动服务的端口号
-c:指定启动服务使用的json文件
Step3:打开浏览器输入http://127.0.0.1:9999访问
四、Moco常用配置参数
1、请求信息设置 request
-
uri指定请求资源地址
-
method指定请求方法
-
queries指定查询参数——get请求才有
-
forms指定表单参数——post请求才有
-
json指定json请求体参数——post请求才有
-
headers指定请求头
2、响应信息设置 response
-
status 指定响应状态码
-
headers 指定响应头
-
cookies 指定响应cookie
-
json 指定响应json数据
-
返回字符串 "text"
moco只能返回文本 json/text一种数据类型,不能都有
五、遇到的问题
moco中文返回乱码问题:
启动moco服务加上参数-Dfile.encoding=UTF-8
六、moco请求与响应实际应用
json脚本如下:
[
{
"description": "login接口请求",
"request": {
"uri": "/member/login",
"method": "post",
"headers":{
"X-Media-Type": "v1"
},
"json":{
"mobile_phone": "13845011199",
"pwd": "666666"
}
},
"response": {
"status": 200,
"headers": {
"Content-Type" : "application/json"
},
"cookies": {
"jsessionid": "1234567"
},
"json":{
"code": 0,
"msg": "OK",
"data": {
"id": 11115578,
"reg_name": "花花",
"mobile_phone": "13845011199"
},
"copyright": "Copyright"
}
}
}
]