前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Faker Providers使用及自定义开发

Faker Providers使用及自定义开发

作者头像
苦叶子
发布2019-05-07 14:55:53
1.4K0
发布2019-05-07 14:55:53
举报
文章被收录于专栏:开源优测开源优测

前面两篇文章,一篇介绍了利用Python原生生成测试数据基于Python生成中文测试数据,一篇介绍了Faker库生成测试数据基于Faker生成中文测试数据实例, 本文介绍基于Faker Providers生成测试数据的实例。

Providers介绍

每一个生成器属性(例如name、address、lorem等等)都被称为"fake",faker生成器有很多这样的组件,它们都被打包在"Providers"中。

先看一个简单的实例

代码语言:javascript
复制
# -*- coding: utf-8 -*-
__author__ = "苦叶子"
"""
    faker providers基本实例
"""
from faker import Faker

# 从providers中导入internet组件
from faker.providers import internet


if __name__ == "__main__":
    fake = Faker("zh_CN")

    # 添加provider组件
fake.add_provider(internet)

    # 生成一个私有的ip
ip = fake.ipv4_private()

    print(ip)

运行结果如下

下图为fake内置的providers组件,链接为:https://faker.readthedocs.io/en/stable/providers.html

下图为第三方贡献的开源的providers组件,链接为:https://faker.readthedocs.io/en/stable/communityproviders.html

下面看看如何创建一个自己的Provider,直接看代码实例

代码语言:javascript
复制
# -*- coding: utf-8 -*-
__author__ = "苦叶子"
"""
    实现一个简单的faker provider
"""
from faker import Faker


# 导入provider基类,我们的provider需要继承该类
from faker.providers import BaseProvider


# 创建一个我们的provider
class MyProvider(BaseProvider):
    def my_name(self):
        return "DeepTest"
if __name__ == "__main__":
    print("使用自定义Provider实例")

    fake = Faker('zh_CN')

    # 将自定义provider添加至fake
    fake.add_provider(MyProvider)

    # 调用自定义provider中方法,生成数据
    my_name = fake.my_name()

print(my_name)

运行结果

是不是很简单?

我们可以根据实际业务需要,来自定义自己的provider,从而能满足测试过程中特定数据的生成需要。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源优测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档