写测试需要数据。用真实数据有隐私风险,手动输入 user1@test.comuser2@test.com 又无聊且低效。假数据生成器解决这两个问题:拟真的测试数据,即生即用,零配置。

测试数据的质量直接影响测试质量

劣质测试数据会让测试失去意义:

过于简单:用 "test" 当名字,"a@b.c" 当邮箱,能通过的校验逻辑,遇到 "O'Brien""user+tag@子域名.example.com.cn" 可能直接崩。

缺乏多样性:所有测试用户都是短 ASCII 名字,国际化 bug 就此藏身——超长名字溢出、含特殊字符时排序失序,这些都是真实用户会触发的问题。

硬编码 fixture:测试夹具里写死的数据随时间偏离真实数据形态。动态生成的数据强迫你的代码处理各种合法输入。

生成器能生成什么

使用 ZeroTool 假数据生成器 →

支持以下类别:

个人信息

  • 中文/英文姓名(姓、名或全名)
  • 邮箱地址
  • 手机号(支持多国格式)
  • 出生日期
  • 用户名

地址与位置

  • 街道地址
  • 城市、省份、国家
  • 邮政编码
  • 经纬度坐标

网络与技术

  • URL 和域名
  • IPv4 / IPv6 地址
  • UUID(v4)
  • 用户代理(User-Agent)
  • 十六进制颜色值

金融数据

  • 银行卡号(通过 Luhn 算法校验,测试用)
  • IBAN
  • 金额

文本

  • Lorem ipsum 段落
  • 随机句子和单词
  • 密码(可配置复杂度)

单次生成单个值,或批量生成几十条记录,一键完成。

典型使用场景

填充本地开发数据库

空数据库最影响开发体验。生成 50 条真实感的用户记录一次性导入:

[
  {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "王志远",
    "email": "zhiyuan.wang@example.net",
    "phone": "13812345678",
    "created_at": "2025-11-14T08:22:00Z"
  }
]

单元测试与集成测试

不要把测试数据写死在代码里:

# 与其这样
user = {"name": "张三", "email": "test@test.com"}

# 不如生成多样化的合法输入
# 验证校验逻辑对所有情况都正确处理

API Mock 服务器

前端先行开发时,用生成的数据填充 Mock 响应,让 UI 处理真实数据会触发的边界情况——超长名字、含点的邮箱、空结果状态等。

UI 开发与演示

"王志远""aleksandr.korolenko@company-mail.example.com" 能暴露出 "测试用户""test@test.com" 藏起来的布局 bug,设计评审更有价值。

压测脚本

k6、Locust、JMeter 等压测工具通常需要每个虚拟用户使用不同的账号。生成包含 10,000 条唯一邮箱和姓名的 CSV,直接导入脚本。

无需安装 Faker.js

Node.js 项目的标准做法是安装 Faker.js:

npm install @faker-js/faker
import { faker } from '@faker-js/faker';

const user = {
  name: faker.person.fullName(),
  email: faker.internet.email(),
};

这适合在应用代码里集成数据生成逻辑。但如果你只是需要快速生成测试数据——演示前夕、一次性数据库初始化、设计评审——直接开浏览器比搭 Node.js 项目快得多。

ZeroTool 假数据生成器使用轻量浏览器原生实现,无 CDN 依赖、无 npm、无构建流程。

数据质量:拟真但非真实

生成的数据符合常见校验规则:

  • 邮箱地址符合 RFC 5321 格式
  • 手机号使用有效的国家码和格式
  • 银行卡号通过 Luhn 算法校验(可用于测试支付表单验证逻辑)
  • 日期落在合理范围内

注意:生成的数据不是真实数据。银行卡号无法在真实支付渠道通过,只能用于格式校验测试。生成的邮箱不属于真实用户,不得用于真实通信或生产系统。

隐私安全

生成器在浏览器本地运行,生成的数据不传输到任何服务器。即便用于模拟内部数据 schema 也完全放心。

导出格式

生成结果支持以下格式导出:

  • JSON — API Mock、种子脚本
  • CSV — 电子表格工具、数据库导入
  • SQL — INSERT 语句,直接执行入库

与同类工具对比

工具需要安装浏览器可用自定义 Schema
@faker-js/faker是(npm)是(代码)
Mockaroo是(UI)
ZeroTool基础

需要复杂 schema 和实体间关联关系时,Mockaroo 或本地 Faker.js 更强大。需要快速生成单类数据、零配置时,浏览器工具更快。

小结

好的测试数据让测试更有意义,能发现真实 bug。假数据生成器覆盖最常见的数据类别——个人信息、地址、UUID、密码——无需任何安装配置。

进阶用法:结合 fast-check 等基于属性的测试库,自动生成上千条值并验证代码对所有情况的正确性。

在线生成测试数据,零安装,数据不离开浏览器 →