美文网首页
还在手动造数据吗?不如试试这个----Faker

还在手动造数据吗?不如试试这个----Faker

作者: 小张是个测试 | 来源:发表于2022-07-21 16:19 被阅读0次

    在日常工作中,开发想要测试功能,测试想要验证某个功能,没有数据时就需要手动在页面上创建数据。手工造数据耗时又费力,有没有更加方便的方法呢?

    今天介绍一个python库----Faker。Faker是一个python的开源项目,地址:https://github.com/joke2k/faker
    使用Faker,只需要调用Faker的方法,就能生成各种类型的数据。如生成不同的名称,地址,电话号等信息。

    使用方法
    安装: pip install faker

    from faker import Faker
    
    #指定文化选项,有中文,英文,德文,不同文化生成对应不同文化的信息
    fake=Faker(locale='zh_CN')
    #生成名称
    print(fake.name()) 
    #地址
    print(fake.address())
    #电话号
    print(fake.phone_number())
    #简单的人物信息
    print(fake.simple_profile())
    

    输出效果

    夏桂香
    甘肃省佳县孝南谭街v座 557314
    13325816618
    {'username': 'xiuyinggao', 'name': '袁丹', 'sex': 'M', 'address': '江西省强市清城南宁路X座 402774', 'mail': 'uchen@yahoo.com', 'birthdate': datetime.date(1939, 5, 30)}
    

    Faker中包含多种方法,如地址信息类、基础信息类、邮箱信息、网络基础信息类、浏览器信息类、数字信息类、文字加密类等。
    常用的方法
    address():详细地址
    ssn():生成身份证号
    company():随机公司名(长)
    phone_number():随机生成手机号
    name():随机生成全名
    email():普通邮箱
    ipv4():随机IP4地址
    url():随机URL地址
    paragraph():随机生成一个段落
    text():随机生成一篇文章

    向数据库插入数据
    通过pymysql库来连接MySQL数据库,执行sql语句完成数据添加过程。

    import pymysql
    from faker import Faker
    
    #连接数据库
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="root", db="test_user_info",
                           charset="utf8")
    cursor = conn.cursor()
    fake = Faker("zh-CN")
    #插入20条数据
    for i in range(20):
        try:
            #使用sql语句插入,因为我的数据库中已经建好了表,这里直接insert了
            sql = """insert into user_info(id,type,username,password,name,phone,email) 
            values('%s','Person','%s','%s','%s','%s','%s')""" \
                  % (fake.numerify(),fake.user_name(), fake.password(length=32,special_chars=False),fake.name(),fake.phone_number(),fake.email())
            cursor.execute(sql)
        except Exception:
            sql = """insert into user_info(id) values (fake.numerify())"""
            cursor.execute(sql)
    conn.commit()
    cursor.close()
    conn.close()
    

    效果

    image.png

    相关文章

      网友评论

          本文标题:还在手动造数据吗?不如试试这个----Faker

          本文链接:https://www.haomeiwen.com/subject/uanuirtx.html