造数神器 python-faker

Faker是一个Python库,用于生成各种模拟真实数据,包括用户信息、网络基础信息、地址、时间等,适用于测试场景。它支持多语言,并允许自定义provider。本文介绍了Faker的安装、命令行使用、Python API、常见造数方法和如何创建自定义组件。
摘要由CSDN通过智能技术生成

造数神器 python-faker

faker简介

项目测试时,为了测试常需要造假数据,经常要尽量的模拟真实环境,通常要费大量手工而且造出来的数据,而且通常手工造出来的看起来也很别扭,费时又费事,有没有更好的办法?有,Faker这个造数神器,可以满足你对模拟数据的所有需求。

Faker是一个神奇的python第三方库,可以帮助我们自动生成各种看似真实的假数据,例如:用户信息类、网络基础信息类、浏览器信息类、文件信息类、数字类、文本加密类、时间信息类、其他类别等。

可以在需要大量测试数据的场景下,通过脚本生成快速生成尽可能接近真实的测试数据,节约造数成本。

docshttps://faker.readthedocs.io/en/master/

githubhttps://github.com/joke2k/faker

安装与命令行使用

安装

  • 版本python3.5+

  • pip安装:

    $ pip3 install Faker
    
  • 验证是否安装成功

    $ faker --version
    faker 5.6.1
    

命令行使用

常用命令行参数
命令行参数 说明
-h ,
--help
显示帮助信息
--version 显示版本信息
-o [output] 输出重定向到指定文件
-l [LOCALE],
--lang [LOCALE]
指定使用的语言包,不同的语言包随机生成的不一样
-r [REPEAT] ,
--repeat [REPEAT]
指定生成的数量
-s [SEP],
--sep [SEP]
在生成结果中插入指定的分隔符
-i [INCLUDE ...],
--include [INCLUDE ...]
指定自定义假数据生成器 (这里填你的假数据生成器的包路径,进行一个导包操作)
常用命令

可以通过命令行调用faker,直接生成伪数据或者将伪数据写入到指定文件,等等。

  • 指定语言包

    # 指定语言包,简体中文,zh_CN,生成人物描述信息(profile)
    $ faker -l zh_CN profile
    {
         'job': '保险业务经理/主管', 'company': '天益传媒有限公司', 'ssn': '220106196002131103', 'residence': '河南省广州县上街澳门街P座 643244', 'current_location': (Decimal('-66.54')), 'blood_group': 'AB-', 'website': ['http://www.er.cn/', 'https://www.xiulan.cn/', 'https://www.shen.cn/', 'https://ot.cn/'], 'username': 'vzhu', 'name': '王萍', 'sex''F', 'address': '山东省永安市黄浦齐齐哈尔路O座 451034', 'mail': 'majing@yahoo.com', 'birthdate': datetime.date(1967, 7, 15)}
    
    # 生成只有name,sex,birthdate,address的人物描述信息(profile)
    $ faker -l zh_CN profile name,sex,birthdate,address
    {
         'name': '张岩', 'sex': 'F', 'address': '甘肃省武汉县龙潭江街e座 854752', 'birthdate': datetime.date(1939, 12, 6)}
    
    # 不指定地区,默认英文,en_US
    $ faker profile name,sex,birthdate,address
    {
         'name': 'Scott Griffin', 'sex': 'M', 'address': '4788 Stanley Motorway\nBellside, NH 64281', 'birthdate': datetime.date(1988, 12, 12)}
    
  • 指定数量的数据,指定生成结果的分隔符

    # 生成五个手机号码,默认分隔符为换行符
    $ faker -l zh_CN phone_number -r 5
    13206790377
    
    18066048764
    
    15056230123
    
    15566115750
    
    15903470404
    # 指定分割隔符,不指定则默认为换行符
    $ faker -l zh_CN phone_number -r 5 -s ','
    18941094668,
    15098259791,
    14708023002,
    13798344417,
    15726018159,
    
  • 生成数据输出到指定文件

    $ faker -l zh_CN phone_number -r 100 -s '' -o /faker_demo/phone_number.xls
    

faker的python使用

经典例子

  1. 使用faker.Faker()创建和初始化一个faker生成器,可通过访问你想要的数据类型来命名的属性生成的数据。

    from faker import Faker
    
    # 1.创建和初始化一个faker生成器,地区为中国
    fake = Faker('zh_CN')
    
    # 生成name假数据
    name = fake.name()
    print(f'Randomly generate fake name, 生成name假数据:{name}')
    
    # 生成地址假数据
    address = fake.address()
    print(f'Randomly generate fake address, 生成地址假数据:{address}')
    
    # 生成一段废话
    text = fake.text()
    print(f'Randomly generate rubbish, 生成一段废话:{text}')
    
  2. 输出

    Randomly generate fake name:李红
    Randomly generate fake address:湖北省刚县海陵兴城路E座 381931
    Randomly generate rubbish:现在可以类型不断方法更多日本.一般你们发表简介.
    次数行业建设对于我的.只是一定社会汽车.大小本站所有软件.
    继续什么游戏用户.服务空间之后完成商品记者网上.环境全国而且汽车.
    业务无法这里以上成功.评论位置电话可是学习必须自己但是.能够方法法律正在软件城市一定而且.
    电子名称可是正在成为加入留言.次数怎么提高程序登录.
    

常见语言项

目前faker支持78种语言包,Faker可以将语言环境作为可选参数,以返回本地化的数据。

zh_CN - Chinese (China Mainland)
zh_TW - Chinese (China Taiwan)
en_US - English (United States)
fr_FR - French
ko_KR - Korean
ru_RU - Russian
ja_JP - Japanese
多语言环境
  • v3.0.0版本后支持支持多种语言环境。

    locals = ['zh_CN', 'ja_JP', 'ko_KR', 'en_US']
    fake = Faker(locals)
    for _ in range(10):
        print(fake.name())
    </
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值