python常识系列17-->利用Faker模块造测试数据

本文详细介绍Python第三方模块Faker,用于生成各类伪数据,包括个人资料、公司信息、地理位置、日期时间等,适用于软件测试和数据填充场景。文章涵盖模块安装、基础使用、常用函数及文化选项,帮助快速掌握Faker的实用技巧。

前言

勤奋是学习的枝叶,当然很苦,智慧是学习的花朵,当然香郁。

一、Faker模块是什么?

  • 一个Python第三方模块,主要用来创建伪数据
  • 无需再手动生成或者手写随机数来生成数据,是否faker提供的方法,即可完成数据的生成

二、使用背景介绍

  • 在软件测试过程中,我们经常需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据。
  • 在手动制造数据的过程中,可能需要花费大量精力和工作量。现在有faker,就可以很方便的完成这些事情。

三、Faker模块应用

3.1 faker模块安装

pip install faker

3.2 基础使用

from faker import Faker

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

for i in range(10):
    print( f.name() + " : " + f.address() )  # 随机生成中文姓名和地址

上述代码执行完毕后,大家会发现能随机生成中文姓名和地址。及name()函数能生成姓名,address()函数能生成地址。

3.3 常用函数介绍

city_suffix():市,县

country():国家

country_code():国家编码

district():区

geo_coordinate():地理坐标

latitude():地理坐标(纬度)

longitude():地理坐标(经度)

lexify():替换所有问号(“?”)带有随机字母的事件。

numerify():三位随机数字

postcode():邮编

province():省份

street_address():街道地址

street_name():街道名

street_suffix():街、路

random_digit():0~9随机数

random_digit_not_null():1~9的随机数

random_element():随机字母

random_int():随机数字,默认0~9999,可以通过设置min,max来设置

random_letter():随机字母

random_number():随机数字,参数digits设置生成的数字位数

color_name():随机颜色名

hex_color():随机HEX颜色

rgb_color():随机RGB颜色

safe_color_name():随机安全色名

safe_hex_color():随机安全HEX颜色

bs():随机公司服务名

company():随机公司名(长)

company_prefix():随机公司名(短)

company_suffix():公司性质

credit_card_expire():随机信用卡到期日

credit_card_full():生成完整信用卡信息

credit_card_number():信用卡号

credit_card_provider():信用卡类型

credit_card_security_code():信用卡安全码

currency_code():货币编码

am_pm():AM/PM

century():随机世纪

date():随机日期

date_between():随机生成指定范围内日期,参数:start_date,end_date取值:具体日期或者today,-30d,-30y类似

date_between_dates():随机生成指定范围内日期,用法同上

date_object():随机生产从1970-1-1到指定日期的随机日期。

date_this_month():

date_this_year():

date_time():随机生成指定时间(1970年1月1日至今)

date_time_ad():生成公元1年到现在的随机时间

date_time_between():用法同dates

future_date():未来日期

future_datetime():未来时间

month():随机月份

month_name():随机月份(英文)

past_date():随机生成已经过去的日期

past_datetime():随机生成已经过去的时间

time():随机24小时时间

timedelta():随机获取时间差

time_object():随机24小时时间,time对象

time_series():随机TimeSeries对象

timezone():随机时区

unix_time():随机Unix时间

year():随机年份

file_extension():随机文件扩展名

file_name():随机文件名(包含扩展名,不包含路径)

file_path():随机文件路径(包含文件名,扩展名)

mime_type():随机mime Type

ascii_company_email():随机ASCII公司邮箱名

ascii_email():随机ASCII邮箱

ascii_free_email():

ascii_safe_email():

company_email():

domain_name():生成域名

domain_word():域词(即,不包含后缀)

email():

free_email():

free_email_domain():

f.safe_email():安全邮箱

f.image_url():随机URL地址

ipv4():随机IP4地址

ipv6():随机IP6地址

mac_address():随机MAC地址

tld():网址域名后缀(.com,.net.cn,等等,不包括.)

uri():随机URI地址

uri_extension():网址文件后缀

uri_page():网址文件(不包含后缀)

uri_path():网址文件路径(不包含文件名)

url():随机URL地址

user_name():随机用户名

isbn10():随机ISBN(10位)

isbn13():随机ISBN(13位)

job():随机职位

paragraph():随机生成一个段落

paragraphs():随机生成多个段落,通过参数nb来控制段落数,返回数组

sentence():随机生成一句话

sentences():随机生成多句话,与段落类似

text():随机生成一篇文章(不要幻想着人工智能了,至今没完全看懂一句话是什么意思)

word():随机生成词语

words():随机生成多个词语,用法与段落,句子,类似

binary():随机生成二进制编码

boolean():True/False

language_code():随机生成两位语言编码

locale():随机生成语言/国际 信息

md5():随机生成MD5

null_boolean():NULL/True/False

password():随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母

sha1():随机SHA1

sha256():随机SHA256

uuid4():随机UUID

first_name():

first_name_female():女性名

first_name_male():男性名

first_romanized_name():罗马名

last_name():

last_name_female():女姓

last_name_male():男姓

last_romanized_name():

name():随机生成全名

name_female():男性全名

name_male():女性全名

romanized_name():罗马名

msisdn():移动台国际用户识别码,即移动用户的ISDN号码

phone_number():随机生成手机号

phonenumber_prefix():随机生成手机号段

profile():随机生成档案信息

simple_profile():随机生成简单档案信息

3.4 随机生成指定类型数据

pybool():布尔类型

pydecimal():数字

pydict():字典

pyfloat():left_digits=5 #生成的整数位数, right_digits=2 #生成的小数位数, positive=True #是否只有正数

pyint():整型

pyiterable():迭代器

pylist():列表

pyset():集合

pystr():字符串

pystruct():结构体

pytuple():元组

3.5 随机生成常用数据

ssn():生成身份证号

chrome():随机生成Chrome的浏览器user_agent信息

firefox():随机生成FireFox的浏览器user_agent信息

internet_explorer():随机生成IE的浏览器user_agent信息

opera():随机生成Opera的浏览器user_agent信息

safari():随机生成Safari的浏览器user_agent信息

linux_platform_token():随机Linux信息

user_agent():随机user_agent信息

四、文化选项

编码语种国家
ar_EG阿拉伯语埃及—Arabic (Egypt)
ar_PS阿拉伯语巴勒斯坦—Arabic (Palestine)
ar_SA阿拉伯语沙特阿拉伯—Arabic (Saudi Arabia)
bg_BG保加利亚语保加利亚—Bulgarian
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_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
ko_KR朝鲜语韩国—Korean
ka_GE格鲁吉亚语格鲁吉亚—Georgian(Georgia)
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)
ru_RU俄语俄国—Russian
sl_SI斯诺文尼亚语斯诺文尼亚—Slovene
sv_SE瑞典语瑞典—Swedish
tr_TR土耳其语土耳其—Turkish
uk_UA乌克兰语乌克兰—Ukrainian
zh_CN简体中文中国—China
zh_TW繁体中文中国台湾

五、小结

  • 好用的faker模块就介绍到这里;
  • 由于文化差异,设置文化的时候会导致有些字段比如省份等会出现方法报错等问题,建议读者使用的时候知道对方国家的基本文化信息
  • 生成的数据可以在通过xlwt等模块导入到excel等,读者可以自行发挥。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挨踢~小先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值