博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Faker 快速构造测试数据
阅读量:5980 次
发布时间:2019-06-20

本文共 3711 字,大约阅读时间需要 12 分钟。

hot3.png

Faker是什么

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

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

安装Faker

方法一:

    pip install faker

D:\python\Anaconda3>pip install fakerCollecting faker  Downloading https://files.pythonhosted.org/packages/79/36/8e1aa2f775018ea11a897bef32b6f80d78dcb6cc6563744f2e1dcf128b82/Faker-1.0.2-py2.py3-none-any.whl (845kB)    100% |████████████████████████████████| 849kB 125kB/sRequirement 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/sRequirement already satisfied: python-dateutil>=2.4 in d:\python\anaconda3\lib\site-packages (from faker) (2.6.1)Installing collected packages: text-unidecode, fakerSuccessfully installed faker-1.0.2 text-unidecode-1.2

方法二:

    pycharm settings -> Project Interpreter 面板中添加安装

768fc8f9b263c6e2eb9d5674ed6b3f90573.jpg

方法三:
    Anaconda navigator -> Environments 面板中添加安装

84edea49cb625048ccb5d98d2969a7dac8f.jpg

Faker的使用

引用包:

    from faker import Faker

初始化:

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

实例

D:\python\Anaconda3>ipythonPython 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 informationIPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: from faker import FakerIn [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]: 'minfeng@hotmail.com'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.6import sysimport faker# 设置中国地区偏好数据fake = faker.Faker(locale='zh-CN')target = open("person.csv", 'a')# 随机生成一万条数据写入到csvfor 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

你可能感兴趣的文章
mybatis-spring 项目简介
查看>>
Wireshark抓取RTP包,还原语音
查看>>
Behavioral模式之Memento模式
查看>>
Work Management Service application in SharePoint 2016
查看>>
Dos 改动IP 地址
查看>>
Laravel 源码解读:php artisan make:auth
查看>>
【转】ionic run android 成功launch success,但是genymotion虚拟机没有显示
查看>>
苹果在GitHub上正式开源iOS内核源码
查看>>
测试人员面临的测试挑战和必备技能
查看>>
使用Flutter之后,我们的CPU占用率降了50%
查看>>
同事反馈环:为什么度量和会议还不够充分
查看>>
[转]十问 Linux 虚拟内存管理 (glibc)
查看>>
老司机带你深入浅出 Collection
查看>>
查询系统-vba
查看>>
[译]Spring Session 与 Spring Security
查看>>
python学习笔记(05)
查看>>
JAVA BIO 服务器与客户端实现示例
查看>>
《Cisco IPv6网络实现技术(修订版)》一2.6 配置练习:使用Cisco路由器配置一个IPv6网络...
查看>>
《可穿戴创意设计:技术与时尚的融合》一一第2章 与可穿戴设备有关的故事...
查看>>
ruby动态new对象
查看>>