文章目录Faker假数据生成这件事一行代码搞定1、这玩意儿是干嘛的2、为什么要用它3、怎么用4、扩展能力5、适合哪些人用5、适合哪些人用Faker假数据生成这件事一行代码搞定Faker 在 GitHub 上已经拿到 19,267 Star 了。这是一个 Python 库专门干一件事生成假数据。姓名、地址、邮箱、IP、信用卡号、公司名各种类型都能造而且支持三十多种语言本地化。1、这玩意儿是干嘛的核心能力就一条用fake.name()、fake.address()这种调用方式快速生成看起来像真的假数据。数据库测试需要填充百万条记录造。前端开发需要模拟用户列表造。压力测试需要各种边界数据造。数据脱敏需要替换真实用户信息还是造。它把这些场景全覆盖了。2、为什么要用它自己手写假数据生成逻辑写起来烦维护起来更烦。姓名的姓和名要分开组合地址要有省市区和邮编邮箱要符合格式电话号码要符合区号规则。Faker 把这些细节全包进去了。你不需要关心中国人名怎么拼德国地址长什么样日本的手机号是什么格式。传个 locale 参数就行。3、怎么用安装pipinstallFaker基础用法fromfakerimportFaker fakeFaker()fake.name()# Lucy Cechtelarfake.address()# 426 Jordy Lodge# Cartwrightshire, SC 88120-6700每次调用都会返回不同的随机结果。还支持批量生成for_inrange(10):print(fake.name())需要中文数据改个参数fakeFaker(zh_CN)fake.name()# 生成中文姓名要多种语言混着用传列表就行fakeFaker([it_IT,en_US,ja_JP])4、扩展能力Faker 内置了 providers 机制。除了基础的名址信息还能生成 IP 地址、信用卡号、公司名、职位、颜色、条形码等等。也可以自己写 provider 扩展fromfaker.providersimportBaseProviderclassMyProvider(BaseProvider):deffoo(self):returnbarfake.add_provider(MyProvider)做测试时经常需要可复现的数据用 seedFaker.seed(4321)print(fake.name())# 每次运行结果一样需要唯一值用.uniquenames[fake.unique.first_name()foriinrange(500)]命令行也能直接用faker name faker-lzh_CN address faker-r3-s;name5、适合哪些人用写单元测试需要 mock 数据的开发者做数据库压力测试需要批量造数据的工程师前端开发需要模拟真实用户信息的场景做数据脱敏、需要替换生产环境真实数据的团队5、适合哪些人用写单元测试需要 mock 数据的开发者做数据库压力测试需要批量造数据的工程师前端开发需要模拟真实用户信息的场景做数据脱敏、需要替换生产环境真实数据的团队