Faker:一个测试数据生成器的Python库!

文摘   2024-11-07 07:16   河南  

Faker:造数据不再手写,一个库全搞定!

你还在为测试数据发愁吗?一个个手写测试数据真的很烦,而且数据看起来也不太真实。今天给大家介绍一个神器 - Faker。这玩意儿专门用来生成各种假数据,从名字、地址到公司名称,啥都能造,关键是看起来贼真实!


装这个库超简单,一行命令搞定:   


pip install Faker

来看看咋用:   


from faker import Faker

fake = Faker('zh_CN') # 创建一个中文faker对象

print(fake.name()) # 张强

print(fake.address()) # 广东省兴城市高港南京路f座 867号

print(fake.company()) # 网新科技有限公司

print(fake.email()) # xiulan11@hotmail.com

光整这些基础的还不够带劲,咱们来点花活:   


# 生成一堆用户信息

users = []

for _ in range(3):

users.append({

'name':fake.name(),

'job':fake.job(),

'addr':fake.address(),

'phone':fake.phone_number(),

'birthday':fake.date_of_birth(minimum_age=18, maximum_age=80)

})

print(users)

温馨提示:创建 Faker 实例时别老是重复创建,整个程序用一个就够了,不然会慢得要死。


faker 能造的数据可多了:   


# 互联网相关

print(fake.ip_address()) # 192.168.1.1

print(fake.user_name()) # xiaoming123

print(fake.domain_name()) # zhang.net

# 公司信息

print(fake.company_prefix()) # 创新

print(fake.company_suffix()) # 科技有限公司

# 地理信息

print(fake.city()) # 深圳市

print(fake.street_address()) # 永安街道田路Q座

有时候想要啥数据自己说了算:   


from faker.providers import BaseProvider

class MyProvider(BaseProvider):

def my_game(self):

return self.random_element(['王者荣耀', '和平精英', '原神'])

fake.add_provider(MyProvider)

print(fake.my_game()) # 随机输出一个游戏名

温馨提示:自己写 provider 的时候记得继承 BaseProvider,不然啥功能都用不了。


测试的时候老想要一样的数据:   


fake = Faker('zh_CN')

Faker.seed(12345)

print(fake.name()) # 每次运行都一样

print(fake.address())

小技巧:用了种子以后,同样的代码运行好多次结果都一样,debug 的时候特别好使。


整点中英文混合的:   


fake_cn = Faker('zh_CN')

fake_en = Faker('en_US')

print(f“{fake_cn.name()} lives in {fake_en.city()}”)

玩 faker 最爽的就是不用操心数据的真实性,啥数据都能造,还贼像那么回事。要是手写这些数据,不得累死啊!代码测试、演示、压力测试,这都是好帮手。记得多翻翻官方文档,里面藏着不少好玩的功能等着你去发现呢。


翔宇风
精彩纷呈,引人入胜。
 最新文章