高级 Mock 分为Mock 期望
和自定义 Mock 脚本
两种方式。
在测试时,很多时候需要根据不同的请求参数、IP 返回不同的 HTTP Code、HTTP 头和 JSON 数据。
Mock 期望就是根据设置的请求过滤规则,返回期望数据。
基本信息
响应
在前端开发阶段,对于某些接口,业务相对复杂,而 UI 端也需要根据接口返回的不同内容去做相应的处理。
YApi 提供了写 JS 脚本方式处理这一问题,可以根据用户请求的参数修改返回内容。
请求
header
请求的 HTTP 头params
请求参数,包括 Body、Query 中所有参数cookie
请求带的 Cookies响应
mockJson
接口定义的响应数据 Mock 模板
resHeader
响应的 HTTP 头
httpCode
响应的 HTTP 状态码
delay
Mock 响应延时,单位为 ms
Random
Mock.Random 方法,可以添加自定义占位符,详细使用方法请查看 Wiki
mockJson
变量修改,请避免被全局变量(httpCode, resHeader, delay)的修改if(params.type == 1){
mockJson.errcode = 400;
mockJson.errmsg = 'error';
}
if(header.token == 't'){
mockJson.errcode = 300;
mockJson.errmsg = 'error';
}
if(cookie.type == 'a'){
mockJson.errcode = 500;
mockJson.errmsg = 'error';
}
var a = [1,1,1,1,1,1,1,1,1,1]
mockJson = {
errcode: 0,
email: Random.email('qq.com'),
data: a.map(function(item){
return Random.city() + '银行'
})
}
请求 Mock 数据时,规则匹配优先级:Mock 期望 > 自定义 Mock 脚本 > 项目全局 mock 脚本 > 普通 Mock。
如果前面匹配到 Mock 数据,后面 Mock 则不返回。