前端联调接口没准备好,后端还在写,测试环境数据库是空的——这大概是每个开发者都遇到过的场景。手动编造测试数据既无聊又容易暴露模式单一的问题(全用 "张三" 和 "test@test.com" 的举手)。
本文介绍 anyfreetools.com 的 Mock 数据生成器,打开浏览器就能批量生成结构化假数据,支持 6 种数据类型和 2 种输出格式。
为什么需要 Mock 数据
在实际开发中,Mock 数据的需求贯穿整个开发周期:
前后端并行开发:前端不用等后端接口完成,先用 Mock 数据把页面和交互跑通。这在团队协作中能显著减少阻塞时间。
UI 边界测试:真实数据的长度和格式差异很大。用户名可能是 2 个字,也可能是 20 个字符的英文名。价格可能是 0.01,也可能是 999999.99。只用固定数据测试,上线后 UI 错位是早晚的事。
数据库填充:演示环境、压测环境都需要批量数据。手动插入 10 条可以忍,1000 条就不现实了。
单元测试和集成测试:测试用例需要可重复、多样化的输入数据。硬编码测试数据会导致测试覆盖面窄,且维护成本高。
传统方案是在项目里安装 Faker.js 等库来生成 Mock 数据,但有时候你只是临时需要一批数据填充 Postman 请求或数据库,不值得为此配置一个 Node.js 环境。在线工具在这类场景下更高效。
支持的数据类型
这款工具基于 Faker.js 实现,支持 6 种数据类型,每种类型会生成一组相关联的字段。
个人信息 (Person)
生成完整的人物档案数据:
{
"id": "a3f2b1c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"firstName": "Alice",
"lastName": "Johnson",
"email": "alice.johnson@example.com",
"phone": "555-0123",
"birthDate": "1995-03-15",
"address": "742 Evergreen Terrace",
"city": "Springfield",
"country": "United States"
}
包含 UUID、姓名、邮箱、电话、出生日期、地址、城市和国家。适合用户管理系统、通讯录、CRM 等场景的测试。
公司信息 (Company)
生成企业相关数据:
{
"id": "b4c5d6e7-8f9a-0b1c-2d3e-4f5a6b7c8d9e",
"name": "Acme Technologies",
"industry": "infrastructure",
"employees": 3500,
"founded": 2008,
"website": "https://acme-tech.example.com",
"email": "contact@acme-tech.example.com"
}
包含公司名称、行业、员工数、成立年份、网站和联系邮箱。适合 B2B 平台、企业目录等场景。
地址信息 (Address)
生成包含经纬度的完整地址:
{
"id": "c5d6e7f8-9a0b-1c2d-3e4f-5a6b7c8d9e0f",
"street": "456 Oak Avenue",
"city": "Portland",
"state": "Oregon",
"zipCode": "97201",
"country": "United States",
"latitude": 45.5231,
"longitude": -122.6765
}
适合物流系统、地图应用、配送服务等需要地理位置数据的场景。
网络信息 (Internet)
生成与网络账户相关的数据:
{
"id": "d6e7f8a9-0b1c-2d3e-4f5a-6b7c8d9e0f1a",
"email": "john_doe42@example.com",
"username": "john_doe42",
"password": "xK9#mP2vLq",
"url": "https://example-site.com",
"ipv4": "192.168.1.100",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."
}
包含邮箱、用户名、密码、URL、IPv4 地址和 User-Agent。适合网络安全测试、用户系统、日志分析等场景。
金融信息 (Finance)
生成金融交易相关的数据:
{
"id": "e7f8a9b0-1c2d-3e4f-5a6b-7c8d9e0f1a2b",
"accountNumber": "12345678",
"iban": "DE89370400440532013000",
"creditCard": "4111-1111-1111-1111",
"currency": "USD",
"amount": "1234.56",
"transactionType": "payment"
}
包含账号、IBAN、信用卡号(测试用假数据)、货币代码、金额和交易类型。适合支付系统、财务软件、银行应用的开发测试。
商品信息 (Product)
生成电商相关的商品数据:
{
"id": "f8a9b0c1-2d3e-4f5a-6b7c-8d9e0f1a2b3c",
"name": "Ergonomic Cotton Chair",
"description": "The slim & simple design...",
"price": "299.00",
"category": "Furniture",
"color": "azure",
"material": "Cotton"
}
包含商品名、描述、价格、分类、颜色和材质。适合电商平台、库存管理、商品展示页面等场景。
输出格式
工具支持两种输出格式:
JSON 格式
默认输出格式,生成标准的 JSON 数组。适合直接粘贴到 API 测试工具(如 Postman、Insomnia)的请求体中,或作为前端 Mock 数据源:
// 将生成的 JSON 直接用作 Mock 数据
const mockUsers = [
{
"id": "a3f2b1c4-...",
"firstName": "Alice",
// ...
}
];
// 模拟 API 响应
function getMockUsers() {
return new Promise(resolve => {
setTimeout(() => resolve(mockUsers), 300);
});
}
CSV 格式
以逗号分隔的表格格式输出,第一行是字段名(Header)。适合导入数据库、Excel 或其他数据处理工具:
id,firstName,lastName,email,phone,birthDate,address,city,country
"a3f2b1c4-...","Alice","Johnson","alice@example.com","555-0123","1995-03-15","742 Evergreen Terrace","Springfield","United States"
CSV 格式特别适合批量导入测试数据库。大多数数据库管理工具(如 DBeaver、DataGrip)都支持 CSV 直接导入。
实际使用场景
场景一:前端列表页开发
开发一个用户管理后台,需要展示用户列表。接口还没准备好,用 Mock 数据先把分页、搜索、排序做好:
- 打开 Mock 数据生成器
- 选择 "个人信息" 类型
- 数量设为 50
- 格式选 JSON
- 点击生成,复制结果到项目的
mock/users.json
// src/mock/api.ts
import users from "./users.json";
export function fetchUsers(page: number, pageSize: number) {
const start = (page - 1) * pageSize;
return {
data: users.slice(start, start + pageSize),
total: users.length,
};
}
这样前端开发完全不依赖后端进度,联调时只需把 Mock 数据源替换为真实接口。
场景二:数据库压测数据填充
需要在测试环境准备大量订单数据:
- 选择 "商品信息" 类型,生成 1000 条 CSV 数据
- 用数据库工具导入
-- MySQL 导入 CSV
LOAD DATA INFILE '/tmp/products.csv'
INTO TABLE products
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '
'
IGNORE 1 ROWS;
场景三:Postman 接口测试
测试一个创建公司的 API 接口:
- 选择 "公司信息" 类型,生成 1 条 JSON 数据
- 复制到 Postman 的 Body 中
- 根据接口字段要求做少量调整后发送请求
比手动编造 {"name": "测试公司", "industry": "测试行业"} 更接近真实数据的分布特征。
与代码库方案的对比
如果项目里已经有完整的 Mock 方案,在线工具的意义在哪?
在线工具适合:
- 临时需要一批数据,不想在项目里加依赖
- 非技术人员(产品、测试)需要准备测试数据
- 快速验证 UI 布局,几秒钟就要看到效果
- 数据库填充,导出 CSV 直接导入
代码库方案适合:
- 需要与项目测试框架集成
- 数据字段有自定义业务逻辑
- 需要可重复的种子数据(seed-based)
- CI/CD 流水线中自动化生成
两者不冲突。在线工具解决的是"快速拿到一批数据"的即时需求,代码库方案解决的是工程化、可重复的测试数据管理。
使用技巧
选择合适的数据量:UI 测试通常 20-50 条就够了,性能测试可能需要 500-1000 条。不要一次性生成太多,浏览器渲染大量文本会变慢。
组合多种类型:一个电商项目可能同时需要用户数据、商品数据和地址数据。分别生成后,用脚本把它们关联起来(比如给每个订单随机分配一个用户 ID 和商品 ID)。
CSV 导入数据库前检查编码:生成的 CSV 是 UTF-8 编码。如果目标数据库使用其他编码(如 GBK),导入前需要做转换,否则中文字段会出现乱码。
JSON 数据做接口 Mock:配合 json-server 等工具,可以在几分钟内搭建一个完整的 RESTful Mock API:
# 安装 json-server
npm install -g json-server
# 用生成的 JSON 文件启动 Mock 服务
json-server --watch mock-users.json --port 3001
这样前端项目直接请求 http://localhost:3001/users 就能拿到 Mock 数据,支持分页、排序、过滤等功能。
相关阅读:
- 工具指南2-在线JSON格式化工具 - 生成的 JSON 数据可以用格式化工具查看和编辑
- 工具指南23-CSV转JSON在线工具 - CSV 和 JSON 格式互转
本系列其他文章
- 工具指南1-在线图片压缩
- 工具指南2-在线JSON格式化工具
- 工具指南3-在线正则表达式测试
- 工具指南4-二维码生成工具
- 工具指南5-Base64编解码工具
- 工具指南6-JWT在线解码工具
- 工具指南7-Unix时间戳转换工具
- 工具指南8-在线密码生成器
- 工具指南9-URL编解码工具
- 工具指南10-在线哈希生成器
- 工具指南11-JSON转TypeScript类型生成器
- 工具指南12-Cron表达式在线解析工具
- 工具指南13-在线颜色转换工具
- 工具指南14-在线SQL格式化工具
- 工具指南15-在线Markdown实时预览工具
- 工具指南16-在线JSON对比工具
- 工具指南17-AI Token计数器
- 工具指南18-在线OCR文字识别工具
- 工具指南19-在线CSS渐变生成器
- 工具指南20-在线UUID生成器
- 工具指南21-HTML转JSX在线转换工具
- 工具指南22-WebSocket在线测试工具
- 工具指南23-CSV转JSON在线工具
- 工具指南24-在线CSS Box Shadow生成器
- 工具指南25-在线Favicon生成器
- 工具指南26-在线子网计算器
原文发布于 陈广亮的技术博客,欢迎关注获取更多前端与 AI 开发内容。