示例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 中常用的轻量级选择。它并不适用于加密用途,但对于测试数据生成这种更看重"确定性与速度"的场景来说,恰恰是合适的选择。