首页 > 编程语言 > 详细

Python生成测试数据-Faker(非LOL选手-李相赫)

时间:2020-07-27 12:45:49      阅读:66      评论:0      收藏:0      [点我收藏+]

Faker介绍

官方文档:https://faker.readthedocs.io/en/master/

Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.

Faker是一个为您生成虚假数据的Python包。无论您是需要引导您的数据库、创建漂亮的XML文档、填充您的持久性以进行压力测试,还是匿名化从生产服务获取的数据,Faker都适合您。

使用前需要知道

这些数据都是伪造出来的,不保证真实性,需要谨慎使用。

安装

pip install Faker

数据返回语言(中文简体、中文繁体、英文...)

Faker中使用locale关键字(可以不指定这个,直接传入位置参数也行)来指定一种或者多种虚假数据的语言

from faker import Faker

# 实例化Faker对象,不指定数据显示语言,默认为en_US:英文
faker_defalut = Faker()

# 随机返回一个名字
print(faker_defalut.name())		# Nathan Munoz

# 指定中文
faker_CN = Faker(locale=‘zh_CN‘)
print(faker_CN.name())		# 萬怡安

# 随机使用locale列表中的某种语言返回数据
fake = Faker(locale=[‘en_US‘, ‘zh_CN‘, ‘zh_TW‘])
print(fake.name())

# 随机返回5条数据
for _ in range(5):	# 这里的变量 _,不希望被使用,但是可以被使用,因为我们只要它循环的过程
	print(faker_CN.name())

其他语言

PS:每个语言可用的方法可能有所不同移步:https://faker.readthedocs.io/en/master/locales.html

本地文档

在本地目录下执行:python -m faker > docs.txt将在当前目录下生成faker的文档

常用方法

from faker import Faker()

fake_CN = Faker(locale=‘zh_CN‘)

# name() 生成姓名
print(faker_CN.name())

# name_female() 女性的名字
print(faker_CN.name_female())		# 严婷

# name_male() 男性的名字
print(faker_CN.name_male())		# 徐成

# phone_number() 手机号码
print(faker_CN.phone_number())		# 13506788385

# ssn() 生成身份证号
print(faker_CN.ssn())		# 37160319971003166X

# postcode() 邮政编码
print(faker_CN.postcode())		# 176393

# address() 将生成一个详细地址 及邮编,但是这个地址不一定正确
print(faker_CN.address())		# 辽宁省哈尔滨县长寿杨街F座 418615

# company() 公司名称
print(faker_CN.company())		# 凌云信息有限公司

# credit_card_number() 信用卡卡号
print(faker_CN.credit_card_number())		# 2530679186722860

# date() 获取时间:默认格式 %Y-%m-%d	# 2000-08-02
print(faker_CN.date())
# 修改格式
print(faker_CN.date(pattern=‘%Y-%m-%d %H:%M:%S‘)) # 2020-04-26 11:52:57

# free_email() 电子邮箱
print(faker_CN.free_email())		# jingyuan@hotmail.com

# job() 职业
print(faker_CN.job())		# 情报信息分析人员

# bothify(text, letters)方法
# text关键字参数中:将#号替换成0-9的数字, letters关键字中:将?号替换成中字符串的任意一个子字符 可用于生成订单编号,产品编号类似数据
print(faker_CN.bothify(text=‘产品编号: ??-########‘, letters=‘JD‘))	# 产品编号: DD-28748630

# ean(length,prefixes)	条形码, length条形码总长-只能是8或者13(默认), prefixes需传递一个元组,如果定义了将随机去元组中某一个字符串并加在生成的条码前
print(faker_CN.ean(length=13, prefixes=(‘2020‘, ‘2018‘,)))		# 2020148459094

# text(max_nb_chars,) 生成一个随机字符串 字符串最大长度默认 200, 最小长度5
print(faker_CN.text())
print(faker_CN.text(max_nb_chars=5))		# 操作浏览.

# image_url() 图片连接
print(faker_CN.image_url())		# https://placeimg.com/117/235/any

# ipv4_public() IPV4地址
print(faker_CN.ipv4_public())		# 107.85.199.240

# mac_address() mac地址
print(faker_CN.mac_address())		# 19:7b:7b:40:b5:ab

# user_agent()  生成用户代理
print(faker_CN.user_agent())  # Opera/8.50.(X11; Linux x86_64; ro-RO) Presto/2.9.168 Version/11.00

完结

这里只列举了一部分,应该能模拟很多测试工作中需要的数据了,如需要补充的可以前往Faker官方文档学习,Python强大之处之一就是有很多开源的库,可以直接拿来使用。

Gitee源码地址:https://gitee.com/zy7y/study_packages.git

Python生成测试数据-Faker(非LOL选手-李相赫)

原文:https://www.cnblogs.com/zy7y/p/13383074.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!