mock.js
- 输出单个字符:Mock.mock(’@city(true)’) 或者Mock.Random.city(true)
- mockjs不光能生成数据还可以对ajax进行拦截
- Mock.mock(url,data)
- url为请求的url地址,默认不分请求方式的拦截所有以url开头的地址
- url可以为正则表达式
- data为响应的数据
- Mock.mock( url, type, function )
- type为请求方式,例如”get“,”post“等
- function为回调函数,参数options对象包含body,type,body三部分,返回值为响应数据
- 可以自定义响应事件
- Mock.setup({ timeout: 5000 }) 设置5秒后再响应
- Mock.setup({ timeout: ‘1000-5000’ }) 设置1秒至5秒间响应
Mock.mock('http://www.baidu.com',{
'list|10':[{'id':'@id','sex':['男','女']}]
})
axios.get('http://www.iaisx.xyz').then(res=>{
console.log(res.data)
})
- 可以使用extend进行占位符拓展
Mock.Random.extend({
fruit () {
return this.pick(['apple', 'peach', 'lemon'])
}
})
console.log(Mock.mock('@fruit'))
console.log(Mock.Random.fruit())
占位符
占位符 | 说明 |
---|
@boolean | 布尔 |
@natural [(min[,max])] | 自然数 |
@integer | 整数 |
@float | 浮点数 |
@character[ ‘lower/upper/number/symbol’] | 单个字母 |
@string[(length)] | 字符串 |
@range[(start, stop[,step])] | 范围数组 |
@Date、@time、@datetime | 日期,时间,日期时间 |
@now | 当前时间 |
@image | url图片 |
@dataImage | base64图片 |
@color、@hex、@rgb、@rgba、@hsl | 颜色 |
@paragraph,@cparagraph | 随机n个句子 |
@sentence,@csentence | 随机n个字符串(汉字)组成句子 |
@word,@cword | 随机字符串单词(汉字) |
@title,@ctitle | 随机标题 |
@first,@last,@name | 姓,名,姓名 |
@cfirst,@clast,@cname | 中文姓,名,姓名 |
@url、@domain、@protocol、@tld、@email、@ip | |
@region、@province、@city、@county、@zip | 大区,省,市,区/县,邮编 |
@capitalize(“word”)、@upper(‘word’)、@lower(‘word’) | 首字母大写,大写,小写 |
@pick(array)、@shuffle(array) | 数组中随机一个,打乱数组 |
@guid、@id、@increment[(step)] | guid,id,自增长id |
Mock.mock({'data|1-10':[{
'index|+1':1,
'id':'@id',
'name':'@cname',
'age|1-150':1,
'sex|1':['0','1'],
'city':'@city(true)',
'email':'@email',
'birthday': '@date("yyyy-MM-dd")',
'qq':/\d{10}/,
'introduce':'@cparagraph(1,5)'
}]})
Mock.mock({
"list|10":["@natural(20,100)"]
})
Mock.mock({
"data|10":[{
"id|":'@increment(10)',
"code":"@guid",
'first':"@cfirst",
'last':"@clast",
'name-1':'@first@last',
'name-2':function(){return this.first+this.last}
}]
}
JS库
测试数据:https://cdn.liyanhui.com/data.json(可跨域),https://cdn.ycku.com/data.json(不可跨域)
JAVA
使用hutool的RandomUtil
方法 | 说明 |
---|
randomInt | int |
randomDouble | double |
randomLong | long |
randomChar | char |
randomBigDecimal | BigDecimal |
UUID.randomUUID | UUID |
randomNumbers | 指定长度数字字符串 |
randomColor | Color |
randomBytes | byte[] |
randomString | String |
randomStringUpper | 数字或者小写字母组成的字符串 |
randomEle | <T> |
randomEles | List |
randomEleSet | Set |
randomDay | DateTime |
// 随机 int
System.out.println(RandomUtil.randomInt());
// 随机 0<n<limit
System.out.println(RandomUtil.randomInt(100));
// min<n<max
System.out.println(RandomUtil.randomInt(10,80));
divider();
// double
System.out.println(RandomUtil.randomDouble());
// 0<n<limit,可指定位数
System.out.println(RandomUtil.randomDouble(10));
// min<n<max,可指定位数
System.out.println(RandomUtil.randomDouble(10,100));
// 指定位数的double
System.out.println(RandomUtil.randomDouble(2,RoundingMode.HALF_UP));
divider();
// 获取length个数字或者字母组成的字符串
System.out.println(RandomUtil.randomString(10));
// 获取length个数字或者小写字母组成的字符串
System.out.println(RandomUtil.randomStringUpper(10));
// 获取指定个数的字符串来源于指定字符串中的
System.out.println(RandomUtil.randomString("abc123<>=",5));
divider();
// 获取集合中的一个,也可以传数组
System.out.println(RandomUtil.randomEle(Arrays.asList(1,2,3,'a','b','c')));
//获取集合中的count个组成的List集合
System.out.println(RandomUtil.randomEles(Arrays.asList(1,2,3,'a','b','c'),5));
//获取集合中的count个组成的不重复的Set集合
System.out.println(RandomUtil.randomEleSet(Arrays.asList(1,2,3,'a','b','c'),5));
divider();
// Long,同int
System.out.println(RandomUtil.randomLong());
// BigDecimal,同int
System.out.println(RandomUtil.randomBigDecimal());
// Char,同字符串
System.out.println(RandomUtil.randomChar());
// Color
System.out.println(RandomUtil.randomColor());
// UUID
System.out.println(UUID.randomUUID());
// 指定长度的字符串
System.out.println(RandomUtil.randomNumbers(10));
// 指定长度的byte数组
System.out.println(Arrays.toString(RandomUtil.randomBytes(10)));
// 当前时间前后随机Date,sqlDate,日期字符串,时间字符串,Date字符串,Calendar,时间戳
System.out.println(RandomUtil.randomDay(-30,30).toJdkDate());
System.out.println(RandomUtil.randomDay(-30,30).toSqlDate());
System.out.println(RandomUtil.randomDay(-30,30).toDateStr());
System.out.println(RandomUtil.randomDay(-30,30).toTimeStr());
System.out.println(RandomUtil.randomDay(-30,30).toString("yyyy-MM-dd HH:mm:ss"));
System.out.println(RandomUtil.randomDay(-30,30).toCalendar());
System.out.println(RandomUtil.randomDay(-30,30).toJdkDate().getTime());