faker库生成数据

faker库用于生成伪造的数据。

设置中文

from faker import Faker
fk = Faker(locale='zh_CN')

设置多语言

from faker import Faker
fk = Faker(locale=['zh_CN', 'en_US'])

手机号码

In [4]: fk.phone_number()
Out[4]: '13184685252'

地址

In [5]: fk.company()
Out[5]: '商软冠联信息有限公司'

公司

In [6]: fk.address()
Out[6]: '广西壮族自治区通辽市沙市张路b座 217717'

时间

In [7]: fk.date_time()
Out[7]: datetime.datetime(1983, 12, 8, 21, 53, 41)

自定义 Provider

如果发现内置的数据不是你想要的,可以自己定义实现。

from faker import Faker
from faker.providers import BaseProvider

class PY36(BaseProvider):

    names = ('雨泽', '鲸鱼', '猴子', '阿鸡')

    def py36_name(self):
        return self.random_element(self.names)

# 添加provider
fk = Faker(locale='zh_CN')
fk.add_provider(PY36)

print(fk.py36_name())

pytest 夹具

安装好 pytest 和 faker 以后,可以直接使用以下测试夹具生成数据。

@pytest.fixture(scope='session', autouse=True)
def faker_session_locale():
    return ['zh_CN']

@pytest.fixture()
def mobile(faker):
    return faker.phone_number()

unique

seed

Factory

参考文献