Faker 快速构造测试数据

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Faker是什么

在软件开发过程中,构造测试数据是必须的工作,可以通过SQL脚本等方式构造,但总体还是比较麻烦,花费较多的精力,利用Python生态的Faker包可以青松的构造各种文化下的随机信息(名字,地址,邮编,城市,省份等)

Faker是一个Python包,开源的GITHUB项目,主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。

安装Faker

方法一:
    pip install faker

D:\python\Anaconda3>pip install faker
Collecting faker
  Downloading https://files.pythonhosted.org/packages/79/36/8e1aa2f775018ea11a897bef32b6f80d78dcb6cc6563744f2e1dcf128b82/Faker-1.0.2-py2.py3-none-any.whl (845kB)
    100% |████████████████████████████████| 849kB 125kB/s
Requirement already satisfied: six>=1.10 in d:\python\anaconda3\lib\site-packages (from faker) (1.10.0)
Collecting text-unidecode==1.2 (from faker)
  Downloading https://files.pythonhosted.org/packages/79/42/d717cc2b4520fb09e45b344b1b0b4e81aa672001dd128c180fabc655c341/text_unidecode-1.2-py2.py3-none-any.whl (77kB)
    100% |████████████████████████████████| 81kB 114kB/s
Requirement already satisfied: python-dateutil>=2.4 in d:\python\anaconda3\lib\site-packages (from faker) (2.6.1)
Installing collected packages: text-unidecode, faker
Successfully installed faker-1.0.2 text-unidecode-1.2

方法二:
    pycharm settings -> Project Interpreter 面板中添加安装

Faker 快速构造测试数据_第1张图片
方法三:
    Anaconda navigator -> Environments 面板中添加安装

Faker 快速构造测试数据_第2张图片

Faker的使用

引用包:
    from faker import Faker

初始化:
    f=Faker(locale='zh_CN')  关于初始化参数locale:为生成数据的文化选项,默认为en_US,只有使用了相关文化,才能生成相对应的随机信息

实例

D:\python\Anaconda3>ipython
Python 3.6.2 |Anaconda custom (64-bit)| (default, Jul 20 2017, 12:30:02) [MSC v.1900 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from faker import Faker

In [2]: f = Faker(local = 'zh_CN')

In [3]: f.name()
Out[3]: 'Elizabeth Hood'

In [4]: f = Faker(locale = 'zh_CN')

In [5]: f.name()
Out[5]: '曹建平'

In [6]: f.city()
Out[6]: '武汉县'

In [8]: f.street_address() + f.street_name() + f.street_suffix()
Out[8]: '澳门路c座巢湖路路'

In [9]: f.country_code()
Out[9]: 'CV'

In [10]: f.longitude()
Out[10]: Decimal('-96.424063')

In [11]: f.latitude()
Out[11]: Decimal('-11.7112995')

In [12]: f.address()
Out[12]: '山东省呼和浩特县和平巢湖街S座 832641'

In [13]: f.province()
Out[13]: '西藏自治区'

In [14]: f.city_suffix()
Out[14]: '县'

In [15]: f.postcode()
Out[15]: '604297'

In [16]: f.license_plate()
Out[16]: 'AYF-2563'

In [17]: f.bank_country()
Out[17]: 'GB'

In [18]: f.iban()
Out[18]: 'GB84XRSF1580415636005'

In [19]: f.bban()
Out[19]: 'GLHH0499033551406'

In [20]: f.color_name()
Out[20]: 'MediumOrchid'

In [21]: f.rgb_css_color()
Out[21]: 'rgb(192,124,210)'

In [22]: f.catch_phrase()
Out[22]: 'Decentralized incremental intranet'

In [23]: f.company()
Out[23]: '艾提科信信息有限公司'

In [24]: f.credit_card_full(card_type=None)
Out[24]: 'VISA 16 digit\n成 吴\n4456197674098871 05/28\nCVC: 721\n'

In [25]: f.date_time()
Out[25]: datetime.datetime(2002, 8, 11, 7, 30, 3)

In [26]: f.iso8601()
Out[26]: '1983-09-02T06:46:48'

In [27]: f.job()
Out[27]: '驾校教练'

In [28]: f.file_name()
Out[28]: '网上.bmp'

In [29]: f.ipv4()
Out[29]: '198.53.37.137'

In [30]: f.uri_path()
Out[30]: 'blog'

In [31]: f.url()
Out[31]: 'https://mingyin.cn/'

In [33]: f.email()
Out[33]: '[email protected]'

In [34]: f.phone_number()
Out[34]: '13863565741'

In [35]: f.ssn()
Out[35]: '510411200011245335'

参考官方文档:https://faker.readthedocs.io/en/master/locales/zh_CN.html

构造测试数据存入CSV

# _*_ coding: utf-8 _*_

# python3.6

import sys
import faker

# 设置中国地区偏好数据
fake = faker.Faker(locale='zh-CN')

target = open("person.csv", 'a')
# 随机生成一万条数据写入到csv
for i in range(10000):
    # 姓名,身份证,手机号码,工作岗位,电子邮箱,信用卡,公司名称
    data = fake.name() + ',' + fake.ssn() + ',' + fake.phone_number() + ',' + fake.job() + ',' + fake.email() + ',' + fake.credit_card_number(
        card_type=None) + ',' + fake.company()
    # print(data)
    target.writelines(str(data) + '\n')
target.close()

 

 

转载于:https://my.oschina.net/peakfang/blog/3007311

你可能感兴趣的:(Faker 快速构造测试数据)