示例CSV(虚拟数据)生成工具

只需指定列名和类型(序号ID、姓名、邮箱、日期、数值等),即可即时生成并下载用于测试和QA的虚拟CSV数据。

支持的数据类型

类型 生成示例
序号ID 1, 2, 3, ... 或带前缀的序号,如 USR-0001
姓名 混合日式与欧美风格的虚构姓名,如 Taro Yamada、Emma Smith
邮箱地址 [email protected](根据生成的姓名自动创建)
电话号码 类似日本手机号格式的 090-1234-5678
日期 在指定范围内的随机日期,格式为 YYYY-MM-DD
整数 在指定的最小值与最大值范围内的随机整数
小数(金额等) 在指定范围内的随机小数(保留两位小数)
布尔值 true/false(标签可自定义)
自由文本 类似 "Lorem ipsum dolor sit amet." 的随机词句

使用提示

  • 在种子栏输入任意数字,即可从相同的列定义中反复生成完全相同的虚拟数据,便于共享错误报告或自动化测试的fixture。
  • 生成的CSV遵循RFC 4180规范,包含逗号、换行符或双引号的值都会被正确加引号和转义。
  • 邮箱列会自动引用同一行中位于其前面的姓名列的数据,将两者搭配使用可以得到内部一致的数据。
  • 所有生成过程完全在浏览器内完成,不会发送到任何服务器——这是完全虚构的数据,不包含任何真实的个人信息。
  • 行数上限为10,000行,以避免浏览器卡顿。如需更多数据,可固定种子后分批生成再合并文件。

常见问题

完全无关。姓名、邮箱地址和电话号码都是通过内置的测试姓名列表与虚拟域名/格式机械组合生成的,均不对应任何真实个人。

为避免浏览器卡顿,单次生成最多限制为10,000行。如需更多数据,可固定种子值分批生成,再将结果文件合并使用。

种子是伪随机数生成器的起始数值。使用相同的种子和相同的列定义,总能生成完全相同顺序的虚拟数据。这在需要"随机但可复现"的数据时非常有用,例如分享错误复现步骤,或在测试代码中与预期值进行比对。

部分名字采用了日语罗马字表记(如 Taro、Hanako),但目前尚不支持生成汉字或假名姓名。不过列名和布尔值标签可以自由输入包括中文在内的任意文本。

下载的文件采用UTF-8编码。直接用Excel打开可能因编码设置不同而出现乱码,建议使用Excel的"数据"选项卡中的"从文本/CSV导入",并明确将文件来源指定为UTF-8。
ツールくん

闲话 ― 为什么测试需要"带种子"的虚拟数据

在软件开发中,使用虚拟数据而非真实记录进行测试是普遍做法,主要出于两个原因:保护个人信息(避免在开发或测试环境中出现真实客户数据),以及可以自由地按需构造边界情形和异常输入。这也正是 Ruby 的 Faker、Python 的 Faker、JavaScript 的 @faker-js/faker 等库被广泛使用的原因。

然而,完全随机的虚拟数据有一个弱点:不可复现。当某个测试偶尔失败时,很难判断原因究竟是逻辑上的真实缺陷,还是恰好生成了某个特殊的异常值所致。带种子的伪随机数生成器(seeded PRNG)正是为解决这一问题而生:只要给定相同的种子,每次运行都会得到完全相同的数列,也就是完全相同的虚拟数据,从而使缺陷复现和测试结果验证变得容易得多。

本工具采用的 mulberry32 算法,能够以相对简单的计算量生成质量较高的伪随机数列,是 JavaScript 中常用的轻量级选择。它并不适用于加密用途,但对于测试数据生成这种更看重"确定性与速度"的场景来说,恰恰是合适的选择。