今天看了几个关于测试数据生成的npm包,调用api可在浏览器和 node.js 中生成大量的伪数据。
推荐一个好用的测试api的平台:https://tonicdev.com/npm/。下午无聊的时候把大部分的api都玩了一遍。O(∩_∩)O哈哈~
如下图,选择相应的npm包进行测试,输入代码,即可run出输出:
下面介绍几个包。
1、faker.js(https://www.npmjs.com/package/faker)
使用方法如下:
官方文档给的api很多,需要用到时再看文档就好啦,在这里记录几个常用的。
faker.js也支持中文的,需要先设置:faker.locale = “zh_CN”。毕竟是个外国人用的,部分数据不支持中文,生成的某些中文数据也有一丢丢奇怪。
常用api(faker.xxx类.xxx方法()):
address类:city(城市)、streetName(街道)、state(省份)
commerce类:color(颜色)、price(价格)
date类:past、future、between、recent、month、weekday
internet类:email、userName、password
name类:firstName、lastName、findName
phone类:phoneNumber
random类:number
2、chance.js(http://chancejs.com/)
chance.js用起来也很方便,例子:
chance.js 的api用起来也挺有趣的,列举几个简单例子:
30%的几率返回true,70%几率返回false。
chance.bool({likelihood: 30});
从abcde五个字母中选一个返回。
chance.character({pool: 'abcde'});
返回一个自定义类型混合的object。
chance.mixin({
'user': function() {
return {
first: chance.first(),
last: chance.last(),
email: chance.email()
};
}
});
chance.user();
玩够了这些api,具体要用的我们还是按需查文档可靠点。
3、json-schema-faker(https://github.com/json-schema-faker/json-schema-faker)
这个更加强大的json-schema-faker内置了faker.js和chance.js,对二者是支持且可扩展的,而且还具有。
(mark资源:src=“https://cdnjs.cloudflare.com/ajax/libs/json-schema-faker/0.3.1/json-schema-faker.min.js”)
(1)先来看看基本用法:
var jsf = require('json-schema-faker');
var schema = {
type: 'object',
properties: {
user: {
type: 'object',
properties: {
id: {
$ref: '#/definitions/positiveInt'
},
name: {
type: 'string',
faker: 'name.findName'
},
email: {
type: 'string',
format: 'email',
faker: 'internet.email'
}
},
required: ['id', 'name', 'email']
}
},
required: ['user'],
definitions: {
positiveInt: {
type: 'integer',
minimum: 0,
exclusiveMinimum: true
}
}
};
var sample = jsf(schema);
console.log(sample.user.name);
// output eg: John Doe
(2)扩展fake.js并使用:
var jsf = require('json-schema-faker');
jsf.extend('faker', function(faker){
faker.locale = "de";
faker.custom = {
statement: function(length) {
return faker.name.firstName() + " is cool.";
}
};
return faker;
});
var schema = {
"type": "string",
"faker": {
"custom.statement": [19]
}
}
var sample = jsf(schema);
// output eg: Victoria is cool.
(3)扩展chance.js并使用:
var jsf = require('json-schema-faker');
jsf.extend('chance', function(chance){
chance.mixin({
'user': function() {
return {
first: chance.first(),
last: chance.last(),
email: chance.email()
};
}
});
return chance;
});
var schema = {
"type": "string",
"chance": "user"
}
var sample = jsf(schema);
// eg: Object:
// email: "[email protected]"
// first: "Annie"
// last: “Myers"
http://xxlorem.unfoldgroup.com/
http://more.handlino.com/
https://github.com/unfoldgroup/xxlorem