⭐ 觉得好用?收藏备用,下次直接打开
模板
参考池 0 高级 模拟外键 / 限定 N 个候选值循环抽取
先建一个池(粘贴真实 ID 列表,或按类型自动生成 N 个),再在字段中选「引用池」从池里随机抽。
字段定义 0
输出 0

Mock 数据生成器 在浏览器里批量生成测试数据,30 多种字段类型覆盖中国本地化场景(中文姓名、手机号、身份证号、银行卡号、统一社会信用代码、车牌、省/市/区、完整地址),同时含通用字段(UUID、数字、日期、枚举、布尔、IP、URL、正则、占位图)。输出 JSON / JSONL / CSV / SQL INSERT 四种格式,内置用户、订单、商品、文章 4 个常用表模板,单次最多生成 10000 条,所有计算本地完成,不上传不联网。

核心特性速览

特性说明
字段类型30+:个人、地址、公司金融、车辆、数字、文本、日期、枚举、网络、视觉
中国本地化身份证号含 GB 11643 校验位、银行卡含 Luhn、统一信用代码含 GB 32100 校验
输出格式JSON 数组 / JSONL(NDJSON)/ CSV(含 UTF-8 BOM)/ SQL INSERT
数量1 – 10000 条,1 万条 200ms 内
表模板用户 / 订单 / 商品 / 文章,一键加载完整字段
状态持久化字段配置自动存 localStorage

字段类型一览

分组字段
个人中文姓名(性别可选)、英文姓名、手机号(运营商可选)、身份证号(性别/年龄段/省份可选)、邮箱、用户名
地址省/市/区(到省/到市/到区)、完整地址(含楼栋)、邮编
公司金融公司名、统一社会信用代码、银行卡号(银行可选)、价格
车辆车牌号(省份简称可选)
数字整数、小数、自增序号(前缀+起始+步长)
文本UUID v4、中文段落、Lorem Ipsum、自定义正则
日期日期(自定义格式)、时间戳(秒/毫秒)
枚举布尔枚举(自定义候选)、布尔(true 概率可调)
网络IPv4、IPv6、URL、域名
视觉HEX 颜色、占位图 URL(picsum)

校验位都是真的

字段校验算法用途
身份证号GB 11643 加权和 mod 11,结果映射 1,0,X,9,8,7,6,5,4,3,2校验末位
银行卡号Luhn(双倍位减 9 + 求和补 10)校验末位
统一社会信用代码GB 32100 / mod 31校验末位

意味着这些数据能通过任何在线/系统验证器的格式校验——可以用来测试你的校验代码是否实现对了,但不要用于任何真实业务

不要用本工具做这些事

  • 真实开户 / 实名认证 —— 校验位虽然合法,但前 17 位是随机的,本质是伪造身份信息
  • 绕过实名风控 —— 银行卡号校验位过得了但卡号不存在,不构成有效卡号
  • 生产环境填充数据 —— 任何外网可见的演示环境也应该用脱敏后的真实数据或纯虚构数据
  • 本地开发联调、压测、单元测试样本、培训演示、SQL 语法演示 —— 这是它该用的场景

📍使用场景

  • 前端联调 / 接口 Mock后端接口还没好,前端先用本地生成的 JSON 顶上;字段类型、数量、格式自定义,直接拷进 mock.js 或 MSW。
  • 数据库压测 / 迁移演练选 SQL INSERT 格式 + 自定义表名,生成 1 万条假数据一键灌库,验证索引、分页、慢查询。
  • 设计稿真实化 / 表格组件Figma、产品 Demo 要"看起来像真的"的中文姓名、地址、手机号;导出 CSV 直接粘进表格组件。
  • 培训 / 教学 / 写文章举例讲身份证号校验位、Luhn 算法、SQL 注入示例,需要批量看起来合法但完全虚构的样本。

常见问题

生成的身份证号、银行卡号、信用代码是真的吗?会撞到真人吗?

全部本地随机生成,但校验位算法都是真的——身份证号按 GB 11643 加权和补位,银行卡用 Luhn,统一社会信用代码按 GB 32100。所以它们能通过格式校验(在线/系统验证器都会判定合法),但身份证号对应的"前 17 位 + 校验位"组合是随机产生的,理论上有极小概率与真实居民身份证号重合(约万亿分之一量级)。不要用于任何真实场景——只能用于开发联调、测试样本、教学演示。底栏已醒目标注"仅供测试"。

我能加自定义字段吗?比如自增订单号 ORD-1001、ORD-1002…

可以,自增序号 字段类型就是干这个的:起始 1001、步长 1、前缀 ORD-、后缀留空,生成出来就是 ORD-1001ORD-1002ORD-1003…起始值支持负数和大数;如果想加日期前缀(如 ORD-20250524-001),目前只能用自定义正则字段:ORD-20250524-\d{3},但顺序号会是随机三位而非递增。纯递增 + 复杂模板的需求建议在生成后用脚本后处理。

"自定义正则"字段支持哪些正则语法?

支持 90% 的常见用法:字符类 [A-Z0-9][一-龥][^abc] 否定类、范围 a-z元字符 \d(数字)、\w(字母数字下划线)、\s(空格)、.(任意小写字母数字);量词 {n} {n,m} + * ?字面字符 -_、汉字、@ 等。不支持:分组 (...)、选择 a|b、反向引用、前/后顾。所以验证码、券码、订单号、复杂格式 ID 都没问题;但要生成"邮箱前缀 @ 域名"这种结构,建议用邮箱字段类型,不要硬凑正则。

1 万条数据生成会不会很慢?浏览器会卡吗?

1 万条 × 10 字段在主流电脑上 200ms 以内,普通 JS 计算量没瓶颈。瓶颈在渲染——textarea 显示几 MB 文本会卡,所以页面对超过 20 万字符的输出做了截断显示("前 20 万字符 + 省略"),但"复制全部"和"下载"按钮始终取完整内容。如果你要 10 万条以上,建议分批生成(每次 1 万条单独下载文件再合并),或者把字段砍少一点。

CSV 下载在 Excel 里中文乱码怎么办?

已经处理了——下载的 CSV 文件自带 UTF-8 BOM 字节头EF BB BF),Excel / WPS / Numbers 打开会自动识别为 UTF-8,中文姓名、地址都能正常显示。如果你用其他工具(如 cat / Python csv.reader / 编辑器手动打开)发现开头多了一个  不可见字符,那就是 BOM——读取时去掉即可(Python 用 encoding="utf-8-sig")。复制粘贴到 textarea 时不会有 BOM,BOM 仅在下载文件里。

状态会保存吗?换个浏览器还能拿回我的字段配置吗?

字段定义、数量、输出格式、表名都自动存到当前浏览器的 localStorage(key 是 toolbox_mock-data_state),刷新页面、关浏览器再回来都还在。但是:换浏览器、清缓存、隐私模式都会丢;目前没有跨设备同步。如果配置很重要,建议保存生成出来的 JSON 数据本身(不是配置),或者手动记录字段表。后续可能加"导出 / 导入配置"功能。

为什么我选了"江苏省",身份证号有时会落到其他地区?

工具内置 50 多个常见 6 位地区码(覆盖 31 个省级行政区),每个省至少 2 个地市。选"江苏省"时会只从江苏的地区码里抽——常州、苏州、南京等。如果你选的省份内置的地区码很少(如西藏、青海、新疆),样本多样性会受限。完整地区码有 3000+ 项,本工具为体积考虑只内置代表性的;如果需要某个具体县区的代码,用自定义正则字段 370102\d{8}[0-9X] 自己拼前 6 位即可(但校验位需要算,建议用"身份证号"字段,否则末位是错的)。

模板预设和"+ 添加字段"能混用吗?

可以。点"用户表"加载 10 个字段后,再点"+ 添加字段"会在末尾追加一个新字段(默认是中文姓名),随后下拉切类型、改字段名、改选项即可。点其他模板会整体覆盖当前字段——所以混用模板要谨慎。建议工作流:先挑最接近的模板 → 删/加单个字段微调 → 保存(自动)。