datafaker 生成假数据
datafaker是Java和Kotlin用来生成假数据的库。这在生成测试数据以填充数据库、生成压力测试数据或匿名化生产服务数据时非常有用。
datafaker是java-faker的一个新分支,构建在java8上。提供生成假数据(如姓名,电话号码,时间和地址等)。
GitHub地址:github.com/datafaker-n…
官方文档:www.datafaker.net/documentati…
安装
Maven:
<dependency>
<groupId>net.datafaker</groupId>
<artifactId>datafaker</artifactId>
<version>版本</version>
</dependency>
使用
默认使用
Faker的使用较为简单,创建一个Faker对象,调用对应的方法即可生成假数据
常用的方法:name(),phone(),date(),address(),color()等
import net.datafaker.Faker;
// 创建Faker对象
Faker faker = new Faker();
// 获取一个随机姓名
String name = faker.name().name(); // Alejandro Cronin
此处实例化的是English Locale对象的Faker
指定语言
Faker在创建时可以传入生成数据的语言Locale对象,默认为英语,要传入中文可以设置为new Locale("zh_CN")
// 创建中文的Faker对象
Faker faker = new Faker(new Locale("zh_CH"));
// 获取随机的中文名
String name = faker.name().name();
// 崔浩然
Locale对象中有许多语言的静态变量来设置语言,创建中文的Faker对象,还可以使用以下方法
// 设置简体中文
Faker faker1 = new Faker(Locale.SIMPLIFIED_CHINESE);
// 设置国家对应的语言
Faker faker2 = new Faker(Locale.CHINA);
// 获取此Java虚拟机实例的默认区域设置的当前值来来设置
Faker faker3 = new Faker(Locale.getDefault());
可重复结果
可提供一个带seed值的Random(int seed)的Faker,生成可预测的随机结果。
Faker faker = new Faker(new Random(1));
例子
生日
Faker faker = new Faker();
// 生成指定字符格式的生日
String birthday = faker.date().birthday("yyyy-MM-dd"); // 1958-12-24
// 生成从现在指定字符串格式的两个年龄间的生日
String birthday = faker.date().birthday(1, 2, "yyyy-MM-dd"); // 2021-01-25
日期
Faker faker = new Faker();
// 生成2022-10-11 00:00:00 到 2022-10-12 00:00:00的时间
String date =
faker.date()
.between(Timestamp.valueOf("2022-10-11 00:00:00"),
Timestamp.valueOf("2022-10-12 00:00:00"),
"yyyy-MM-dd HH:mm:ss"); // 2022-10-11 04:30:56
电话号码
Faker faker = new Faker(Locale.CHINA);
String cellPhone = faker.phoneNumber().cellPhone(); // 18463450170
地址
Faker faker = new Faker(Locale.CHINA);
String city = faker.address().city(); // 天津