一、什么是mock测试
mock测试就是对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法
二、mock常见场景
- 无法控制第三方系统某接口的返回,返回的数据不满足要求
- 某依赖系统还未开发完成,就需要对被测系统进行测试
三、mock工具:moco-runner
1、moco-runner下载
https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.12.0
2、moco-runner 常用属性
属性 | 说明 |
method | 请求方式,包含:get、post、delete、head等 |
headers | 请求头信息 |
json | json格式的数据,可以在请求和响应中 |
uri |
请求路径 |
text | 文本域,一般用于返回 |
queries | 请求入参 |
forms | 表单 |
cookies | |
xpaths
|
|
json_paths | |
version | |
file | 调用的文件 |
path_resource | |
redirectTo | 重定向到某个地址 |
3、构造接口放到json文件中
[{
"description": "get请求",
"request": {
"uri": "/login/1",
"method": "get",
"queries": {
"username": "123",
"password":"456"
}
},
"response": {
"text": "登录成功",
"headers":{
"Content-Type":"text/html;charset=utf-8"
}
}
},
{
"description": "post请求",
"request": {
"uri": "/login/2",
"method": "post",
"forms": {
"username": "123",
"password":"456"
}
},
"response": {
"text": "登录成功",
"headers":{
"Content-Type":"text/html;charset=utf-8"
}
}
},
{
"description": "post请求json格式",
"request": {
"uri": "/login/3",
"method": "post",
"headers": {
"Content-Type":"application/json;charset=utf-8"
},
"json": {
"username": "123",
"password":"456"
}
},
"response": {
"json": {
"code": 100000,
"message": "登录成功",
"time": "2021/06/15 10:04:49"
},
"headers": {
"Content-Type":"application/json;charset=utf-8"
}
}
}
]
注:charset=utf-8解决工具中文返回乱码问题
4、启动moco-runner
运行该文件需要java环境
启动命令:java -jar moco-runner-0.12.0-standalone.jar http -p 8081 -c login.json
参数说明:
java -jar 是启动jar文件命令
http -p 是访问协议和访问端口号,端口号自定
-c 是模拟的接口文件
5、用postman调用模拟接口