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