存在于Python中不一样的Faker
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