使用faker生成测试数据
# 数据类(构造常用数据类型、UUID、文本、词组、文件链接、文件路径)
# 安全类(构造操作系统信息、HASH加密、密码)
# 信息类(构造个人信息数据和表单信息数据:姓名、地址、电话、工作、证件号、
# 银行卡号、公司、邮箱、生日)
# 网络类(构造IP MAC HTTP的客户端类型和文件类型,反反爬)
from faker import Factory
fake = Factory().create('zh_CN') # create('zh_CN'):制定地区
def random_python_data():
return fake.pystr(), \
fake.pyint(), \
fake.pybool(), \
fake.pyfloat(), \
fake.pytuple(nb_elements=2), \
fake.pylist(nb_elements=2), \
fake.pydict(nb_elements=2) # nb_elements长度
def random_uuid():
return fake.uuid4()
def random_text():
return fake.text()
def random_word():
return fake.word(), fake.words()
def random_image_url(): # 图片地址
return fake.image_url()
def random_file_path(): # 文件路径
return fake.file_path()
def random_os_info(os_type: str = 'win'): # 操作系统
if os_type == 'win':
return fake.windows_platform_token() + ' ' + fake.linux_processor()
if os_type == 'linux':
return fake.linux_processor()
if os_type == 'mac':
return fake.mac_platform_token()
if os_type == 'ios':
return fake.ios_platform_token()
if os_type == 'android':
return fake.android_platform_token()
return None
def random_hash(raw_output: bool = False): # raw_output是否以二进制形式返回 hash值
return {'md5': fake.md5(raw_output), 'sha1': fake.sha1(raw_output), 'sha256': fake.sha256(raw_output)}
def random_password(length=10, special_chars=False, digits=True, upper_case=False, lower_case=False): # 密码
return fake.password(length=length,
special_chars=special_chars,
digits=digits,
upper_case=upper_case,
lower_case=lower_case)
def random_name(): # 名称
return fake.name()
def random_address(): # 地址
return fake.address()
def random_phone_number(): # 手机号码
return fake.phone_number()
def random_job(): # 职业
return fake.job()
def random_ssn(*args): # 证件号
return fake.ssn(*args)
def random_credit_card(): # 银行卡号
return fake.credit_card_full(), fake.credit_card_number()
def random_company(): # 公司信息
return fake.company()
def random_email(domain): # 邮箱
return fake.email(domain)
def random_birth(minimum_age=18, maximum_age=25): # 生日
return fake.date_of_birth(minimum_age=minimum_age, maximum_age=maximum_age)
def random_profile(): # 个人简介信息
return fake.profile()
def random_ip4(private=False, public=False): # ip4
if private:
return fake.ipv4_private() # 局域网ip
if public:
return fake.ipv4_public() # 公网ip
return fake.ipv4() # 随机ip
def random_ip6(): # ip6
return fake.ipv6()
def random_mac_address(): # mac地址
return fake.mac_address()
def random_user_agent(): # user_agent
return fake.user_agent()
def random_mime_type(mime_type: str = 'application'): # 文件类型
return fake.mime_type(mime_type)
print(random_mime_type('image'))