python 使用 faker 自动生成假数据和测试数据

2021-01-20 宋洋葱 宋洋葱

前言

faker可以生成非常真实的随机数据,通过它的提供者,可以生成诸如姓名、地址、ip、公司名、银行卡号、邮编、ISBN、时间、手机号、职业等等数据。通过本地话配置可支持设置不同的语言和地区。

另一个相似的工具是 mimesis

安装

pip install faker

使用

简单使用

from faker import Faker
# 设置语言
fake = Faker('zh_CN')

print(fake.name())
print(fake.random_int(0, 100))
print(fake.random_number(digits=10))

print(fake.lexify(text='测试字符串:????', letters='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'))

真实案例

请使用 python3 的 Faker 模块生成一个 30 万的用户信息,并写入名为 users30w.json 的文件,然后使用 post 请求把 用户信息发送到 localhost:8080/save/users 。

# pip3 install Faker requests
from faker import Faker
import json
import requests

# 创建 Faker 实例
fake = Faker()

# 生成用户信息
users = []
for i in range(300000):
    user = {
        "id": fake.uuid4(),
        "userPoolId":"64916f78cc768114483d9924",
        "status": "Activated",
        "email": fake.email(),
        "username": fake.user_name(),
        "nickname": fake.name(),
        "gender": fake.random_element(["M", "F", "U"])
    }
    #print(f'{i}:{user["id"]}')
    users.append(user)

# 将用户信息写入 JSON 文件
with open("users30w.json", "w") as f:
    json.dump(users, f, indent=4)

print("用户信息已写入 users30w.json 文件。")


# 发送 POST 请求
url = 'localhost:8080/users/save'
headers = {'Content-type': 'application/json'}
r = requests.post(url, json=users, headers=headers)
# 检查响应状态码
if r.status_code == 200:
    print(f'用户信息已成功发送到 {url}')
else:
    print("发送失败。")
print(r.text)

参考文档