Python库Faker----生成随机测试数据

Python库:随机生成测试数据的模块

1.安装

pip install Faker

2.创建Faker

In[2]:from faker import Faker
  ...:fake = Faker()
  ...:# 随机生成一个名字
  ...:fake.name()

Out[2]: 'Timothy Haynes'

In[3]:from faker import Factory
  ...:fake = Factory.create()
  ...:fake.name()
  
Out[3]: 'Denise Jones'

3.生成本地化数据

# 源码
class Factory(object):

    @classmethod
    def create(
            cls,
            locale=None,
            providers=None,
            generator=None,
            includes=None,
            **config):
			...

  之前生成的都是英文数据,默认情况下locale = em_US,现将其改为“zh_CN”,生成中文数据

In[4]:fake = Faker("zh_CN")
  ...:fake.name()
  
Out[4]: '毛军'

4.方法

from faker import Faker
fake = Faker('zh_CN')

# 个人信息
>>> fake.name() # 姓名
'潘丽华'
>>> fake.simple_profile()
{'username': 'guiying17',
 'name': '王凯',
 'sex': 'M',
 'address': '青海省晶县秀英南昌街g座 837876',
 'mail': '[email protected]',
 'birthdate': datetime.date(1933, 3, 22)}
 
# 地址信息
>>> fake.address()
'江苏省六盘水县友好蒋街y座 925418'
>>> fake.province()
'云南省'
>>> fake.city()
'红市'

# URL
>>> fake.url()
'http://www.55.cn/'

# 公司信息
>>> fake.company()
'兰金电子网络有限公司'
>>> fake.company_prefix()
'信诚致远'
>>> fake.company_suffix()
'传媒有限公司'
>>> fake.company_email()
'[email protected]'

# 文本类
>>> fake.text()
'可能搜索出来游戏只要.游戏加入是一图片如此企业提高.男人发展结果这么经验直接文件投资.\n介绍手机记者特别市场地址个人.以上部分有关也是朋友.一定市场到了.计划就是简介显示解决部门.\n最大基本注册.得到销售手机能够.可是来自公司的是在线客户目前.\n介绍作者大小全部音乐具有.类型企业积分回复.\n这种文件电脑出现.因此部分最新产品就是全国.'

>>> fake.word()
"我们"
>>> fake.words()
['开发', '文化', '阅读']
>>> fake.sentences()
['世界更新这种处理影响评论.', '同时问题设计.', '完全活动开始位置.']

5.自定义功能

from faker import Faker
fake = Faker()

# first, import a similar Provider or use the default one
from faker.providers import BaseProvider

# create new provider class. Note that the class name _must_ be ``Provider``.
class Provider(BaseProvider):
    def foo(self):
        return 'bar'

# then add new provider to faker instance
fake.add_provider(Provider)

# now you can use:
fake.foo()
# 'bar'

6.使用实例
现有一张SQL表,填写一百条测试数据。

# coding = utf-8

from faker import Faker
import pymysql
fake = Faker("zh-CN")

conn = pymysql.connect(host="127.0.0.1",port=3306,user="root",passwd="123456", charset='utf8',db="test")
sql = "insert into personal_information(name,ID_Card,address,tel) VALUES (%s,%s,%s,%s)"

cursor = conn.cursor()
for i in range(100):
    params = (fake.name(),fake.ssn(),str(fake.city()),fake.phone_number())
    # sql = sql.format(fake.name(),fake.ssn(),str(fake.city()),fake.phone_number())
    cursor.execute(sql,params)
    conn.commit()
cursor.close()
conn.close()

结果图:

你可能感兴趣的:(Python基础)