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) }
}
其它占位符功能参考:
