Yapi内置字符池:
lower: "abcdefghijklmnopqrstuvwxyz",
upper: "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
number: "0123456789",
symbol: "!@#$%^&*()[]"
使用示例:
@string('lower', 3, 5) --从字符池取3-5位字符
Random.string('lower', 3, 5) --从字符池取3-5位字符
基础Mock:
@ip --随机IP地址
@string('lower', 3) --从字符池取3位字符
@string(5, 20) --随机取出5-20位字符
@pick(['Success', 'Failed', 'Unsettled']) --数组中选择元素
@url('ftp', 'image.baidu.com') --生成指定协议和指定域名的url
@datetime(yyyy-MM-dd HH:mm:ss) --随机时间字符串
高级Mock-期望:
数据模板:'属性名|规则': 属性值
规则格式:
"name|min-max": value --生成min-max个下属对象(数组)
"name|count": value
"name|min-max.dmin-dmax": value
"name|min-max.dcount": value
"name|count.dmin-dmax": value
"name|count.dcount": value
"name|+step": value
"name|regexp": 正则表达式 --按正则表达式生成数据
使用示例1:
参数过滤: id=0
响应Body:
{ "accesstoken": null, "errorCode": "参数不合法", "msg": "Failed" }
使用示例2:
响应Body:
{ "accesstoken|regexp": "[A-Za-z0-9]{12}", "errorCode": "@integer(300001, 300009)", "msg": "@pick('Success','Failed')" }
高级Mock-脚本:
函数:
var test_arr = [] --定义数组
if(params.Param1 === ''){ } --判断是否为空
if(params.Param1 == 'daily'){ } --判断是否等于某值
if(test_arr.includes(params.Param1)=== false){ } --判断是否是数组中的元素
Random.integer(60, 100) -- 同 @integer(60, 100)
Random.string('lower', 1, 3) -- 同 @string("lower", 1, 3)
Random.lower('HELLO') -- 字母转小写
Random.csentence() --随机中文句子
Random.email('qq.com') --随机生成邮箱
Random.datetime('yyyy-MM-dd A HH:mm:ss') -- 同 @datetime("yyyy-MM-dd A HH:mm:ss")
Random.pick(['Success', 'Failed', 'Unsettled']) -- 同 @pick(['Success', 'Failed', 'Unsettled'])
使用示例:
Mock脚本:
var msgarr=['Success', 'Failed', 'Unsettled']
if(Random.lower(params.appId) == Random.lower('aaaaaa'))
{
mockJson={ accesstoken:"", errorCode: "参数错误", msg:'failed' }
}
else
{
mockJson={ accesstoken:Random.string(12), errorCode: Random.integer(300001, 300009), msg: Random.pick(msgarr) }
}
其它占位符功能参考:
https://github.com/nuysoft/Mock/wiki/Mock.Random
http://mockjs.com/examples.html#DPD