示例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." 的随机词句

生成示例 CSV(虚拟数据)

开发与测试需要**形貌像样的数据**。直接拿正式数据来用,在个人信息的观点上应当避免;而手写十行也够折腾。本工具只要指定列名与数据类型,即可当场生成测试与质量保证用的虚拟 CSV 并下载。

**能指定类型正是本工具的要点。** 若整份数据都填同一个字符串,便无从测试排序与检索。由于可按列分别选择流水号、姓名、电子邮件、日期、数值等类型,因而能做出**分布贴近真实数据的文件**。生成全在浏览器内完成,不会向服务器送出任何内容。另外,所生成的姓名与电子邮件皆为虚构,与真实人物无关。

生成虚拟 CSV 的步骤

  1. 定义列 按需要新增若干组列名与数据类型。
  2. 选择数据类型 可从流水号、姓名、电子邮件、日期、数值等之中选择。**每一列都能指定不同的类型。**
  3. 设定选项 部分类型可更细致地指定范围或格式。
  4. 指定行数 填入所需的条数。
  5. 下载 生成的 CSV 可直接用作测试数据。

用好本工具的小技巧

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

这些场景会用到

测试导入功能

**无须动用正式数据**,可回避处理个人信息的风险。

检查画面是否变形

可用含长姓名与特殊字符的数据,查看版面是否走样。

衡量性能

加大行数后生成,便能测量大量数据下的处理时间。

准备展示环境

在商谈或评审要展示的画面里,事先放进像样的数据。

测试数据的术语

虚拟数据
并不存在、为测试而造的数据。**其值皆为虚构,与真实人物无关。**
CSV
以逗号分隔的文本格式,多数电子表格软件与数据库皆可读取。
流水号
自1起依序递增的整数,常用来代替主键。
边界值
最大长度、最小值等容易出问题的取值。**除虚拟数据外,请另行备妥这些。**
遮罩
把正式数据的一部分遮去后使用的手法,是有别于生成虚拟数据的另一种选择。
字符编码
在 CSV 中,混淆 UTF-8 与 Shift_JIS 是乱码的主因。

常见问题

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

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

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

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

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

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

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

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

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