几乎每位开发者都经历过因缺少数据而测试受阻的时刻。你做了一个 API、表单或 dashboard,但没有足够真实的输入,测试结果就缺乏参考意义。手动编造假邮箱、手机号或地址,对付几行数据还行,一旦需要更多,就会变成一件耗时的苦差事。
为了测试,我们需要结构化且逼真的应用数据。无论是验证你的 pagination 逻辑是否稳健,还是观察 API 在面对混乱用户输入时的行为,假数据都能在不接触生产数据的前提下模拟真实世界的场景,从而让测试保持一致、安全并具备扩展性。
过去生成高质量的假数据很麻烦。你得写脚本、从表格里复制随机姓名,还得指望它看起来足够真实。
下面是一些可以用来生成测试用假数据的工具。每个工具适用于不同的场景:有些基于代码,有些是可视化的,或提供 API。
1. Faker
当开发者聊到假数据时,Faker 往往是第一个被提及的名字。它是一个简单但灵活的库,能生成从用户数据到金融数据的各种内容。它的突出之处在于输出既逼真又结构化。
示例:
# pip install faker
from faker import Faker
import json
fake = Faker()
fake_users = []
for _ inrange(5):
user = {
"full_name": fake.name(),
"email": fake.unique.email(),
"city": fake.city(),
"joined_at": fake.date_time_this_year().isoformat()
}
fake_users.append(user)
print(json.dumps(fake_users, indent=2))
Faker 很适合为数据库播种(seeding)或 mock API payload。它速度快且不依赖网络。在以 Python 为主的项目(如 Django、FastAPI)中进行测试时,它往往是最实用的选择。
2. Mockaroo
Mockaroo 非常适合在你需要大量结构化数据、但又不想写代码的时候用。它是一个 Web 工具,你可以定义数据字段,选择类型(如姓名、电话号码或产品 SKU),并立即以 CSV、JSON、SQL 或 Excel 导出结果。
你只需访问网站,设计好 schema,然后点击“Generate Data”即可。免费版可生成最多 1,000 行数据,非常适合测试分析型 dashboard、CRM 系统或对 API 进行压测。
例如,当你测试一个销售 dashboard 时,可以定义 customer_name、email、purchase_amount 和 region 等列。几秒钟内,Mockaroo 就能生成与你模型匹配的逼真数据。
3. JSON Generator
JSON Generator 是一个简单但灵活的 Web 工具,使用 JSON 模板来创建假的 API 响应。你定义结构,它会在每次生成时填充随机且逼真的数据。
{
"users":[
"{{repeat(5)}}",
{
"id":"{{index()}}",
"username":"{{firstName()}}_{{surname()}}",
"email":"{{email()}}",
"joined":"{{date(new Date(2023, 0, 1), new Date(2025, 0, 1))}}"
}
]
}
每个占位符都使用内置的生成器(generator)。每次运行你都会得到一批独一无二的用户。它非常适合前端开发者在没有后端的情况下 mock API 或构建 Postman 集合(Postman collections)。
最好的一点是一致性。你可以复用同一套 schema 来测试各种场景,从 pagination 到输入校验,而无需重建结构。当你需要为 JavaScript 应用或 API 集成测试快速生成可重复的 mock 数据时,JSON Generator 表现很出色。
5. Mimesis
Mimesis 是另一个能生成结构化假数据的库,类似 Faker,但提供更多可控性和本地化支持。当你的应用面向多个地区或语言时,它非常有用。
# pip install mimesis
from mimesis import Person, Address
import json
person = Person('en')
address = Address('en')
data = []
for _ inrange(3):
entry = {
"name": person.full_name(),
"email": person.email(),
"address": address.address(),
"country": address.country()
}
data.append(entry)
print(json.dumps(data, indent=3))
输出非常真实,会匹配所选 locale 的地址格式和姓名。你只需把 'en' 切换为 'fr'、'de' 或 'ja',就能立即按地区生成相应数据。
与 Faker 相比,Mimesis 在大规模数据生成方面更快且结构性更强。它非常适合模拟国际用户群,或测试 Web 应用中的地区特定逻辑。
6. Chance.js
Chance.js 是一个轻量级的 JavaScript 库,可直接在前端或 Node.js 项目中生成随机且逼真的数据。它非常适合在不依赖外部数据源的情况下测试组件、mock API,或进行基于浏览器的演示。
# npm install chance
importChancefrom"chance";
const chance = newChance();
const users = [];
for (let i = 0; i < 3; i++) {
users.push({
id: chance.guid(),
name: chance.name(),
email: chance.email(),
city: chance.city(),
signupDate: chance.date({ year: 2025 })
});
}
console.log(users);
每次运行都会得到独特但真实感十足的值。它非常适合填充 UI 表格、为数据库播种(seeding),或在开发过程中 mock REST 端点。
由于既能在浏览器也能在 Node 环境运行,Chance.js 能顺畅融入 Jest、Cypress、Playwright 等现代测试方案。对于基于 JavaScript 的工作流来说,它是伪造几乎任意类型数据的一种快捷可靠方式。
应该用哪一个工具
这些工具各自适用于不同的工作流。如果你主要使用 Python,试试 Faker 或 Mimesis。
对前端或全栈 JavaScript 项目来说,Chance.js 是最容易集成的。
如果你想在不写代码的前提下生成大数据集,Mockaroo 是最快的选择。它非常适合 QA 团队,或设计师在做 UI 演示时需要样例数据的场景。
与此同时,JSON Generator 则非常适合测试 API 响应或在没有后端的情况下 mock 端点。
你不必只用一个工具。很多开发者会混合使用:内部 API 测试用 Faker,批量数据导出用 Mockaroo。选择适合你技术栈的,而不是最流行的。

