云服务器

存在于Python中不一样的Faker

2020-09-01 14:36:15 34

Faker不同角度角色

在英雄联盟中Faker就是三冠王,神一般的存在。而在Python也存在神一般存在的第三方库Faker,它是一个Python包,主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。

 

 

应用场景

在软件需求、开发、测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据。由于现在的业务系统数据多种多样,千变万化。在手动制造数据的过程中,可能需要花费大量精力和工作量,此项工作既繁复又容易出错,比如要构造一批用户三要素(姓名、手机号、身份证、地址……)、构造一批银行卡数据、或构造一批地址通讯录等。

 

 

自动化测试

无论是手工测试还是自动化测试中,需要的测试数据需要接近于真实是才能重现出用户操作的内容。

 

 

安装Faker

项目地址:
    https://github.com/joke2k/faker
pip安装:
    pip install faker

 

 

Faker使用方法

处于国内这个大环境之下,中文的时候是必定的。而Faker也支持中文情况,另外常用的语言代号如下:

    * 简体中文:zh_CN
    * 繁体中文:zh_TW
    * 美国英文:en_US
    * 英国英文:en_GB
    * 德文:de_DE
    * 日文:ja_JP
    * 韩文:ko_KR
    * 法文:fr_FR

 


其他语言代码例子:

```
ar_EG - Arabic (Egypt)
ar_PS - Arabic (Palestine)
ar_SA - Arabic (Saudi Arabia)
bg_BG - Bulgarian
bs_BA - Bosnian
cs_CZ - Czech
de_DE - German
dk_DK - Danish
el_GR - Greek
en_AU - English (Australia)
en_CA - English (Canada)
en_GB - English (Great Britain)
en_NZ - English (New Zealand)
en_US - English (United States)
es_ES - Spanish (Spain)
es_MX - Spanish (Mexico)
et_EE - Estonian
fa_IR - Persian (Iran)
fi_FI - Finnish
fr_FR - French
hi_IN - Hindi
hr_HR - Croatian
hu_HU - Hungarian
hy_AM - Armenian
it_IT - Italian
ja_JP - Japanese
ka_GE - Georgian (Georgia)
ko_KR - Korean
lt_LT - Lithuanian
lv_LV - Latvian
ne_NP - Nepali
nl_NL - Dutch (Netherlands)
no_NO - Norwegian
pl_PL - Polish
pt_BR - Portuguese (Brazil)
pt_PT - Portuguese (Portugal)
ro_RO - Romanian
ru_RU - Russian
sl_SI - Slovene
sv_SE - Swedish
tr_TR - Turkish
uk_UA - Ukrainian
zh_CN - Chinese (China Mainland)
zh_TW - Chinese (China Taiwan)
```

 

 

基础例子一输出姓名及地址:

    from faker import Faker

fake = Faker(locale='zh_CN')
name = fake.name()
address = fake.address()
print(name)
print(address)

输出内容: C:\Python37\python.exe R:/python/utx-master/FakerTest.py 王明 上海市潮州县大东辛集街k座 760823

 

 

其他方法

个别方法具有针对性,比如province()方法适用中国,但不适用美国及其他一些国家。

 

 

地址相关

fake.address()            # 地址
# 湖南省天津市山亭西安街u座 553035

fake.building_number() # 楼名

K座

fake.city() # 完整城市名

贵阳县

fake.city_name() # 城市名字(不带市县)

长春

fake.city_suffix() # 城市后缀名

fake.country() # 国家名称

索马里

fake.country_code(representation="alpha-2")

UY # 国家编号

fake.district() # 地区

高坪

fake.postcode() # 邮编

483362

fake.province() # 省

黑龙江省

fake.street_address() # 街道地址

六盘水路Q座

fake.street_name() # 街道名称

深圳街

fake.street_suffix() # 街道后缀名

 

 

公司相关

fake.bs()                 # 商业用词
# e-enable compelling content

fake.catch_phrase() # 妙句(口号)

Distributed regional migration

fake.company() # 公司名称

时空盒数字网络有限公司

fake.company_prefix() # 公司名称前缀

方正科技

fake.company_suffix() # 公司名称后缀

科技有限公司

 

 

电话相关

fake.msisdn()                # 完整手机号码(加了国家和国内区号)
# '9067936325891'

fake.phone_number() # 手机号

'18520149917'

fake.phonenumber_prefix() # 区号

145

 

 

身份证相关

fake.ssn(min_age=18, max_age=90)    # 身份证
# '522701196801293970'

 


相关Faker干货推文:

1.https://zhuanlan.zhihu.com/p/87203290

2.https://mp.weixin.qq.com/s?__biz=MzA4NDUyNzA0Ng==&mid=2247486145&idx=1&sn=4d309ad345174c63c9855501ae10c883&chksm=9fe49868a893117e917b241df9883c9b2c11374457162d88beba49960ced833a8a89d7ca1784&mpshare=1&scene=23&srcid=0707h7oveAmsLtZ4u4hnKfSE&sharer_sharetime=1594082659613&sharer_shareid=ab1e71d153437181941bf9650829834a#rd

睿江云官网链接:www.eflycloud.com

上一篇: 无

微信关注

获取更多技术咨询