1.使用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'))