yapi使用笔记
Author:zhoulujun Date:
之前一直用阿里 rap https://thx.github.io/RAP/index_zh.html
对于yapi,感觉mock使用上,文档没有阿里的给的清晰明了。
yapi接口 接口编辑,导入json后,接口编辑,对于mock规则编辑不友好。
https://github.com/Open-Federation/json-schema-editor-visual/issues/38#issuecomment-962424412
只有使用高级mock
基础的使用啥的,网上教程一大把,比如:
YAPI高级Mock使用文档 https://juejin.cn/post/6898213163464917005
yapi中使用json-schema mock数据 https://www.jianshu.com/p/2d5dce8b9c76
官方的稳定看看也基本能整明白
基于mockjs占位符的mock
可以将其简单理解为用于生成特定字串的函数, 具体可参见mockjs官方定义:
https://github.com/nuysoft/Mock/wiki/Syntax-Specification#数据占位符定义规范-dpd
不过此处并不支持mockjs中所有占位符功能,大概只相当于Mock.Random部分。
常用占位符功能详述
@integer(min?, max?):返回一个随机的整数。
@float( min?, max?, dmin?, dmax? ):返回一个随机浮点数。
min:可选,整数部分最小值。
max:可选,整数部分最大值。
dmin:可选,小数部分最小长度。
dmax:可选,小数部分最大长度。
@string(pool, min, max):返回随机字串
length: 字串长度
min: 字串最短长度
max: 字串最大长度
pool:表示字符池。如果传入 'lower'、'upper'、'number'或'symbol',表示从内置的字符池从选取。对应关系如下:、
@pick(arr):
示例:@pick(['this', 'is', 'picker', 'test'])
可以从 MockJs学习笔记 https://www.zhoulujun.cn/html/tools/TestTools/Mock/8694.html 瞅瞅
Mock.Random生成各种随机数据
官方文档:https://github.com/nuysoft/Mock/wiki/Mock.Random
Type | Method |
---|---|
Basic | boolean, natural, integer, float, character, string, range, date, time, datetime, now |
Image | image, dataImage |
Color | color |
Text | paragraph, sentence, word, title, cparagraph, csentence, cword, ctitle |
Name | first, last, name, cfirst, clast, cname |
Web | url, domain, email, ip, tld |
Address | area, region |
Helper | capitalize, upper, lower, pick, shuffle |
Miscellaneous | guid, id |
自定义Mock脚本-高级Mock
YApi 提供了写 JS 脚本方式处理这一问题,可以根据用户请求的参数修改返回内容。
脚本主要由两部分组成全局变量和响应
全局变量
请求
header
请求的 HTTP 头params
请求参数,包括 Body、Query 中所有参数cookie
请求带的 Cookies
响应
mockJson
接口定义的响应数据 Mock 模板resHeader
响应的 HTTP 头httpCode
响应的 HTTP 状态码delay
Mock 响应延时,单位为 msRandom
Mock.Random 方法,可以添加自定义占位符,详细使用方法请查看 Wiki
使用方法
首先开启此功能
Mock 脚本就是用 JavaScript 对
mockJson
变量修改,请避免被全局变量(httpCode, resHeader, delay)的修改
根据请求参数重写 mockJson
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 数据,后面 Mock 则不返回。
这里推荐一个 好东东:https://easyyapi.com/setting/rules/class_doc.html
参考文档:
YAPI高级Mock使用文档 https://juejin.cn/post/6898213163464917005
转载本站文章《yapi使用笔记》,
请注明出处:https://www.zhoulujun.cn/html/tools/TestTools/Mock/8695.html