优雅的生成测试数据
前言
最近项目上需要生成一些较为真实的测试数据给客户演示,所以比如用户名称里那些测试1,测试2这样的就不太好了,但是自己想,可能想个三五个还行,如果需要个几百条几千条的,可就没那么简单了,下面推荐一个工具,非常好用
common-random
简单易用的随机数据生成器。一般用于开发和测试阶段的数据填充、模拟、仿真研究、演示等场景。可以集成到各种类型的java项目中使用。
优点
- 非常轻量级(不到1M),容易集成,无需过多第三方依赖
- 简单方便,无需编写冗余代码
- 生成的随机数据比较接近真实数据
使用
1 | <dependency> |
基础用法
1 | //地区类虚拟数据 |
随机数字
1 | //生成1个1~101(不含)之间的随机整数 |
随机汉字
1 | //生成1个随机汉字 |
随机成语
1 | RandomSource.languageSource().randomChineseIdiom(); |
随机唐诗
1 | RandomSource.languageSource().randomTangPoem(); |
随机人名
中文名
1 | //生成1个随机中文人名(性别随机) |
英文名
1 | //生成1个随机英文人名 |
随机生成符合规则的虚拟身份证号码
1 | //生成1个随机的虚拟身份证号码,地区为广西壮族自治区,男性,出生日期在1990年11月11日至1999年12月12日之间 |
注意:
- 身份证号码前6位地区码数据取自民政部网站2019年公开数据
- 随机生成的虚拟身份证号码符合校验规则,但有可能与真实号码相同(纯属巧合)
随机虚拟银行卡号码
1 | //生成1个随机虚拟VISA信用卡号码 |
注意:
- 随机生成的虚拟银行卡号码只是前缀和位数符合规则,不会与现实中的真实卡号产生重合,无法用于支付,仅供模拟测试/仿真/项目演示等用途
随机中国大陆手机号
1 | //生成1个随机中国大陆手机号 |
随机邮箱地址
1 | //生成1个随机邮箱地址,后缀随机,邮箱用户名最大长度为10 |
随机域名
1 | //生成1个随机域名,域名最大长度为16 |
随机ipv4地址
1 | //生成1个随机公网IPv4地址 |
随机ipv6地址
1 | //生成1个随机ipv6地址 |
随机端口号
1 | //生成1个随机端口号 |
随机app信息
1 | //生成1个随机App名称 |
随机静态url
1 | //生成1个随机静态url,后缀为jpg |
随机日期
1 | //生成1个2020年的随机日期,日期格式为yyyy-MM-dd |
随机时间
1 | //生成过去7天范围内的随机时间 |
随机时间戳
1 | //生成1个当天范围内的随机时间戳 |
随机时区名称
1 | //生成1个随机时区名称 |
随机强密码
1 | //生成1个随机强密码,长度为16,无特殊字符 |
随机地址
1 | //随机获取省份 |
随机国家或地区
1 | //随机获取1个编码首字母为b的国家或地区 |
随机经纬度
1 | //随机生成1个纬度 |
随机固话
1 | //随机固话区号(省级行政区名称不需要包含后缀) |
随机中国大陆车牌号
1 | //生成1个随机中国大陆车牌号(新能源车型) |
随机网络昵称
1 | //生成1个随机英文网络昵称,最大长度为8个字符 |
随机qq信息
1 | //生成1个随机QQ号 |
随机民族名称
1 | RandomSource.otherSource().randomEthnicName(); |
随机教育背景信息
1 | //随机获取学历 |
随机公司及部门名称
1 | //随机生成1个公司名称,地区前缀为北京 |
随机中文短句
1 | //随机生成1条中文短句 |
随机英文文本
1 | //随机生成1条英文文本,包含10个单词 |
随机营销号
1 | RandomSource.languageSource().randomNonsenseTitle("星期一", "下雨"); |
随机行业分类
1 | RandomSource.otherSource().randomEconomicCategory(); |
说明:行业分类编码和名称来自国家统计局发布的公开数据
统一社会信用代码
1 | RandomSource.otherSource().randomSocialCreditCode(); |
随机EAN
1 | //随机ISBN,返回结果需要分隔符-,格式例如:978-7-XXXX-XXXX-X |
说明:
- 本程序随机生成的EAN编码长度为13位
- 本程序随机生成的EAN编码符合标准校验规则,仅供模拟测试/仿真/项目演示等用途,并不表示现实中真实存在该编码对应的商品(如有雷同纯属巧合)
随机useragent
1 | //随机生成1个PC User-Agent |
随机网卡mac地址
1 | //随机生成1个网卡MAC地址,使用:作为分隔符 |
随机颜色值
1 | //随机生成1个RGB颜色值 |
股票名称和股票代码
1 | //随机股票信息(沪A+深A+创业板+科创版) |
开放式基金名称和基金代码
1 | String[] fund = RandomSource.financialSource().randomFund(); |
日k线数据
1 | //随机生成20210201~20210228日期范围内的K线数据,起始价格为100,单日最大涨幅10%,单日最大跌幅-10% |
货币
1 | //随机获取一种货币信息 |
足球联赛球队名称
1 | //英超 |
篮球联赛球队名称
1 | //CBA |
国家及地区的足球代表队
1 | //(亚洲足联范围内)随机足球队名称 |
访问 Wikipedia网页 可以查看完整的足球联合会列表信息。
热门手机型号
1 | RandomSource.otherSource().randomMobileModel(); |
结语
功能很丰富,日常使用绝对可以i满足了,具体的请参考官方文档/代码