一、前言
- 在工具开发、测试过程中,经常需要使用一些测试数据。手动制造数据的话,可能需要花费大量精力和工作量,并且容易出错,这是Faker可以帮助我们生成一些虚拟测试数据。
- faker是一个开源的python库,安装完成后只需要调用Faker库,就可以帮助我们创建需要的数据。
- 文档:
https://faker.readthedocs.io/en/master/index.html#localization
二、Faker基本用法
这里主要生成中文测试数据,所以提供常见的方法示例是中文的。想要了解其他的,可以在官网点击其他语言 。
1.地址信息类:
fake.address() :完整地址,比如XX省XX市XX路XX号
fake.street_address() :街道+地址
fake.street_name() :街道名
fake.city_name() :城市名
fake.city() :城市
fake.province():省份
fake.postcode() :邮编
fake.country() :国家
2.公司信息类:
fake.company():公司名
fake.company_suffix():公司名后缀(公司性质)
fake.company_prefix():公司名前缀
3、日期
fake.date(pattern="%Y-%m-%d", end_datetime=None)
fake.year():随机年份
fake.day_of_week():随机星期数
fake.time(pattern="%H:%M:%S", end_datetime=None):随机时间
4、文章句子类:
fake.word(ext_word_list=None):随机词语 ext_word_list可以是一个列表,那么词语会从列表中取
fake.words(nb=3, ext_word_list=None):随机多个词语 nb是数量,对于words来说是返回多少个词语
fake.sentence(nb_words=6, variable_nb_words=True,ext_word_list=None): 随机短语(会包括短语结束标志点号)
fake.paragraph(nb_sentences=3,variable_nb_sentences=True,ext_word_list=None):随机段落
fake.paragraphs(nb=3, ext_word_list=None):多个随机段落
5、随机数字类文章来源:https://www.toymoban.com/news/detail-547062.html
fake.pystr(min_chars=None, max_chars=20):自定义长度的随机字符
fake.pyint():随机整数
6、其他文章来源地址https://www.toymoban.com/news/detail-547062.html
fake.name():姓名
fake.user_name(*args,**kwargs):用户名,只是随机的英文姓名组合,一般是6位
fake.phone_number():电话号码
fake.simple_profile(sex=None):简略个人信息,包括用户名,姓名,性别,地址,邮箱,出生日期。
fake.profile(fields=None,sex=None):详略个人信息,比简略个人信息多出公司名、血型、工作、位置、域名等等信息。
fake.password():密码,参数选项:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母。默认情况:length=10,special_chars=True, digits=True, upper_case=True, lower_case=True
fake.job():工作
三、随机生成测试数据并写入Excel
from faker import Faker
import xlsxwriter
wb = xlsxwriter.Workbook('test.xlsx') #创建一个新的工作簿对象
ws = wb.add_worksheet('Sheet1')
heading = ['Name', 'Job', 'City', 'Postcode', 'Word', 'Year']
my_bold = wb.add_format({'bold': True})
ws.write_row('A1', heading, my_bold) # 表头加粗
ws.set_column(1, 3, 20) # 设置第2至4列的宽度为20
ws.set_column(4, 4, 50) # 设置第5列的宽度为30
a = 2
fake = Faker(locale='zh_CN') # 指定中文语言和类型生成数据
for _ in range(30):
name = fake.name() #姓名
job = fake.job() #工作
city = fake.city() #城市
postcode = fake.postcode() #邮编
word = fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None) #随机短语
year = fake.year() # 年份
## print(f"Name: {name}, Job: {job}, city: {city}, postcode:{postcode}, word:{word},year: {year}")
ws.write_row('A' + str(a), {name}) # 从第二行开始写入
ws.write_row('B' + str(a), {job})
ws.write_row('C' + str(a), {city})
ws.write_row('D' + str(a), {postcode})
ws.write_row('E' + str(a), {word})
ws.write_row('F' + str(a), {year})
a += 1
wb.close()
到了这里,关于【Faker+xlsxwriter】生成测试数据并写入Excel的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!