专栏首页开源优测Faker Providers使用及自定义开发

Faker Providers使用及自定义开发

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

Providers介绍

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

先看一个简单的实例

# -*- 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,直接看代码实例

# -*- 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,从而能满足测试过程中特定数据的生成需要。

本文分享自微信公众号 - 开源优测(DeepTest),作者:苦叶子

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 从龙套到跑路:自动化测试入门姿势

    目标 首先要定义自动化测试的目标是什么? 在笔者的企业实践中,给自动化测试明确了两个目标: 主动或被动方式触发主业务流全流程覆盖验证(应用于大规模持续集成验证)...

    苦叶子
  • 工具篇 - JMeter目录及关键配置分析02

    前言 学习一种工具,首先得对其关键配置及目录等有一个基本的了解,这样能更方便的深入掌握该工具,下面我们就JMeter的目录及相关关键配置进行分析说明。 下载安装...

    苦叶子
  • MySQL诊断调优常用SQL语

    在很多时候,我们需要通过SQL语句来查看MySQL执行SQL的情况,例如查看SQL执行队列,是否存在慢查询等等。

    苦叶子
  • 如何实现黑幕?即鼠标触及之地,原来黑色显示原来文字

    最近在写文章时,有些比较敏感的句段想实现默认情况下黑色(遮住文字),而鼠标靠近之后显示出来这些敏感句段的功能。

    lollipop72
  • 一文带你读懂 OCR

    OCR,或光学字符识别,是最早的计算机视觉任务之一,因为在某些方面它不需要用到深度学习。因此,早在2012年深度学习热潮之前,OCR就有了各种不同的应用,有些甚...

    AI研习社
  • linux下安装php的imagick扩展模块(附php升级脚本)

    imagick是一个PHP的扩展,是一套软件系列,用ImageMagick提供的API来进行图片的创建与修改,不过这些操作已经包装到扩展imagick中去了,最...

    洗尽了浮华
  • 设计图都不会画,还想做”架构师“?

    什么是系统架构师? 系统架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标...

    互扯程序
  • OCR技术浅析

    OCR(Optical Character Recognition,光学字符识别)的概念早于1920年代便被提出,一直是模式识别领域中重要的研究方向。 近年来,...

    企鹅号小编
  • 简述网页版微信扫码登录的过程

    先打开https://wx.qq.com/显示出页面,这时候会加载一堆的html,js等资源。

    :::::::
  • 支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示

    随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细。比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web...

    Rector

扫码关注云+社区

领取腾讯云代金券