利用Faker生成各种随机测试数据
资源来源参考:URL http://testingpai.com/article/1615615023407
Faker
一、faker 安装
pip install faker
二、使用
-
模块导入
from faker import Faker
-
创建实例
fk = Faker(locale='zh-CN')
- 参数
- use_weighting:指定是否尝试使值的频率与真实世界的频率相匹配
- locale='zh-CN':语言环境,默认的 en_US 语言环境,支持传多个 ['ja_JP','en_US','zh-CN']
- 参数
-
常用方法
- 四要素
- 姓名
name = fk.name()
- 身份证
id_card = fk.ssn()
- 手机号
phone = fk.phone_number()
- 银行卡(信用卡)
card = fk.credit_card_number()
- 姓名
- 个人其他信息
- 地址(带邮编)
addr = fk.address()
- 国家名称
country = fk.country()
- 省
city = fk.province()
- 城市
city = fk.city()
- 邮编
post_code = fk.postcode()
- 邮箱
- 个人邮箱
email = fk.email()
- 公司邮箱
company_email = fk.company_email()
- 个人邮箱
- 公司名称
company_name = fk.company()
- 工作岗位
job = fk.job()
- 地址(带邮编)
- 完整个人信息
- 生成复杂人物信息
- fk.profile(fields=None, sex=None)
- 生成简单人物信息
- fk.simple_profile(sex=None)
- 生成复杂人物信息
- 随机数
num = fk.random_int(min=1000,max=9999)
- 文本类
- 随机字符串
str = fk.pystr()
- 随机生成词语
word = fk.word()
- 随机生成多个词语,返回 list
word_list = fk.words()
- 随机生成一句话
sentence = fk.sentence()
- 随机生成多句话,返回 list
sentence_list = fk.sentences()
- 随机生成多个段落,通过参数 nb 来控制段落数,返回 list
paragraphs_list = fk.paragraphs(nb=2)
- 随机生成一篇文章
text = fk.text()
- 随机字符串
- 时间类
-
随机时间
-
格式:年-月-日 # 范围:从 1970 到当前时间
date = fk.date()# 范围:当前年份
date = fk.date_this_year()# 范围:当前月份
date = fk.date_this_month()
-
格式:年-月-日 时:分:秒,范围:从 1970 到当前时间 # 范围:从 1970 到当前时间
date_time = fk.date_time()
-
-
随机年/月
随机年
year = fk.year()
随机月
mouth = fk.mouth()
-
指定时间范围
-
格式:年-月-日
date = fk.date_between(start_date='-1y',end_date='today')
参数- start_date='-1y'
- -1y:一年前
- -1m:一个月前
- end_date='today'
- today:今天
- -1y:一年前
- -1m:一个月前
注意点
- 参数传字符串
- 开始时间必须小于结束时间
- start_date='-1y'
-
格式:年-月-日 时:分:秒
date_time = fk.date_time_between(start_date='-3y',end_date='-2y')
参数- start_date='-1y'
- -1y:一年前
- -1m:一个月前
- end_date='today'
- today:今天
- -1y:一年前
- -1m:一个月前
注意点
- 参数传字符串
- 开始时间必须小于结束时间
- start_date='-1y'
-
-
未来时间
- 格式:年-月-日
future_data = fk.future_date()
- 格式:年-月-日 时:分:秒
future_date_time = fk.future_datetime()
时区
time_zone = fk.timezone()
- 格式:年-月-日
-
时间戳
unix_time = fk.unix_time()
-
- 网络信息
- 用户名
user_name = fk.user_name()
- 密码
passwd = fk.password()
- 用户名
- 浏览器信息(user_agent)
- fk.firefox():随机生成 Firefox 浏览器 user_agent 信息
- fk.chrome():随机生成 Chrome 浏览器 user_agent 信息
- fk.internet_explorer():随机生成 IE 浏览器 user_agent 信息
- fk.opera():随机生成欧朋浏览器 user_agent 信息
- fk.safari():随机生成 Safari 浏览器 user_agent 信息
- 手机信息
- Android
android_info = fk.android_platform_token()
- iOS
ios_info = fk.ios_platform_token()
- Android
- 操作系统
- fk.windows_platform_token():windows 信息
- fk.linux_platform_token():Linux 信息
- fk.mac_platform_token():MacBook 信息
- 四要素
-
高级用法
- 确保随机数据唯一性
- fk.unique.方法名()
[fk.unique.name() for i in range(10)]
- fk.unique.方法名()
- 共享随机数
-
Faker 类有一个类方法(seed),支持给生成器设置参数 Generator.seed(seed)
from faker import Faker
class Test:
def init(self):
self.fk = Faker(locale='zh-CN')def test01(self):
Faker.seed(1111)
print(self.fk.name())def test02(self):
Faker.seed(1111)
print(self.fk.name())
-
- 确保随机数据唯一性