Faker介绍

官方文档:https://faker.readthedocs.io/en/master/

Faker is a Python package that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.

Faker是一个为您生成虚假数据的Python包。无论您是需要引导您的数据库、创建漂亮的XML文档、填充您的持久性以进行压力测试,还是匿名化从生产服务获取的数据,Faker都适合您。

使用前需要知道

这些数据都是伪造出来的,不保证真实性,需要谨慎使用。

安装

pip install Faker

数据返回语言(中文简体、中文繁体、英文...)

Faker中使用locale关键字(可以不指定这个,直接传入位置参数也行)来指定一种或者多种虚假数据的语言

from faker import Faker

# 实例化Faker对象,不指定数据显示语言,默认为en_US:英文
faker_defalut = Faker() # 随机返回一个名字
print(faker_defalut.name()) # Nathan Munoz # 指定中文
faker_CN = Faker(locale='zh_CN')
print(faker_CN.name()) # 萬怡安 # 随机使用locale列表中的某种语言返回数据
fake = Faker(locale=['en_US', 'zh_CN', 'zh_TW'])
print(fake.name()) # 随机返回5条数据
for _ in range(5): # 这里的变量 _,不希望被使用,但是可以被使用,因为我们只要它循环的过程
print(faker_CN.name())

其他语言

PS:每个语言可用的方法可能有所不同移步:https://faker.readthedocs.io/en/master/locales.html

本地文档

在本地目录下执行:python -m faker > docs.txt将在当前目录下生成faker的文档

常用方法

from faker import Faker()

fake_CN = Faker(locale='zh_CN')

# name() 生成姓名
print(faker_CN.name()) # name_female() 女性的名字
print(faker_CN.name_female()) # 严婷 # name_male() 男性的名字
print(faker_CN.name_male()) # 徐成 # phone_number() 手机号码
print(faker_CN.phone_number()) # 13506788385 # ssn() 生成身份证号
print(faker_CN.ssn()) # 37160319971003166X # postcode() 邮政编码
print(faker_CN.postcode()) # 176393 # address() 将生成一个详细地址 及邮编,但是这个地址不一定正确
print(faker_CN.address()) # 辽宁省哈尔滨县长寿杨街F座 418615 # company() 公司名称
print(faker_CN.company()) # 凌云信息有限公司 # credit_card_number() 信用卡卡号
print(faker_CN.credit_card_number()) # 2530679186722860 # date() 获取时间:默认格式 %Y-%m-%d # 2000-08-02
print(faker_CN.date())
# 修改格式
print(faker_CN.date(pattern='%Y-%m-%d %H:%M:%S')) # 2020-04-26 11:52:57 # free_email() 电子邮箱
print(faker_CN.free_email()) # jingyuan@hotmail.com # job() 职业
print(faker_CN.job()) # 情报信息分析人员 # bothify(text, letters)方法
# text关键字参数中:将#号替换成0-9的数字, letters关键字中:将?号替换成中字符串的任意一个子字符 可用于生成订单编号,产品编号类似数据
print(faker_CN.bothify(text='产品编号: ??-########', letters='JD')) # 产品编号: DD-28748630 # ean(length,prefixes) 条形码, length条形码总长-只能是8或者13(默认), prefixes需传递一个元组,如果定义了将随机去元组中某一个字符串并加在生成的条码前
print(faker_CN.ean(length=13, prefixes=('2020', '2018',))) # 2020148459094 # text(max_nb_chars,) 生成一个随机字符串 字符串最大长度默认 200, 最小长度5
print(faker_CN.text())
print(faker_CN.text(max_nb_chars=5)) # 操作浏览. # image_url() 图片连接
print(faker_CN.image_url()) # https://placeimg.com/117/235/any # ipv4_public() IPV4地址
print(faker_CN.ipv4_public()) # 107.85.199.240 # mac_address() mac地址
print(faker_CN.mac_address()) # 19:7b:7b:40:b5:ab # user_agent() 生成用户代理
print(faker_CN.user_agent()) # Opera/8.50.(X11; Linux x86_64; ro-RO) Presto/2.9.168 Version/11.00

完结

这里只列举了一部分,应该能模拟很多测试工作中需要的数据了,如需要补充的可以前往Faker官方文档学习,Python强大之处之一就是有很多开源的库,可以直接拿来使用。

Gitee源码地址:https://gitee.com/zy7y/study_packages.git

Python生成测试数据-Faker(非LOL选手-李相赫)的更多相关文章

  1. 用Python生成测试数据

    转载自:http://blog.csdn.net/caz28/article/details/45972109 有时我们需要大量的数据,一般编个程序生成一堆随机数据,Python很适合文本处理,干这个 ...

  2. python生成excel测试数据

    在功能测试时,经常会测到excel文件导入导出的功能,导入与导出时,需要测试系统单次导入大批量数据时是否正常, 如果系统承受不起太大的数据导入,则需要开发限制单次导入的数量,以防止系统服务异常.大量的 ...

  3. Faker——生成测试数据的PHP类库

    工作上用的是TP框架,每次测试功能的时候都要手动添加测试数据,词穷起名总是起一些test1.test2这种low到爆炸的用户名,这让我很难受.稍微翻阅了一些资料,发现laravel有一个生成测试数据的 ...

  4. python-利用faker模块生成测试数据

    Python-利用faker模块生成测试数据 1.前言: Faker模块是一个生成伪数据的第三方模块,他提供了一系列方法,使用非常方便,在做自动化测试时,注册信息,用这个模块生成测试数据就体现了它的好 ...

  5. 通过 Python_Faker 生成测试数据

    通过 Python_Faker 生成测试数据 一.介绍 在软件需求.开发.测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,你不可能通过手工来生成(最傻的方法)可能 ...

  6. 使用Hypothesis生成测试数据

    Hypothesis是Python的一个高级测试库.它允许编写测试用例时参数化,然后生成使测试失败的简单易懂的测试数据.可以用更少的工作在代码中发现更多的bug. 安装 pip install hyp ...

  7. Python生成随机数组的方法小结

    Python生成随机数组的方法小结 本文实例讲述了Python生成随机数组的方法.分享给大家供大家参考,具体如下: 研究排序问题的时候常常需要生成随机数组来验证自己排序算法的正确性和性能,今天把Pyt ...

  8. JavaScript 解析 Django Python 生成的 datetime 数据 时区问题解决

    JavaScript 解析 Django/Python 生成的 datetime 数据 当Web后台使用Django时,后台生成的时间数据类型就是Python类型的. 项目需要将几个时间存储到数据库中 ...

  9. db:seed 更好的生成测试数据

    make:model -m -> 在database/migrations/目录下生成的table表中设置表的字段名和字段类型->在app/目录下对应的模型文件中设置可添加字段 -> ...

随机推荐

  1. day52 html进阶

    目录 一.分组与嵌套 二.伪类选择器 三.伪元素选择器 四.选择器优先级 五.css属性相关 1 字体属性 2 文字属性 3 背景图片 4 边框 5 display属性 6 盒子模型 7 浮动 一.分 ...

  2. meta viewport相关

    <!DOCTYPE html> H5标准声明,使用 HTML5 doctype,不区分大小写 <head lang=”en”> 标准的 lang 属性写法 <meta c ...

  3. shell专题(五):运算符

    1.基本语法 (1)“$((运算式))”或“$[运算式]” (2)expr  + , - , \*,  /,  %    加,减,乘,除,取余 注意:expr运算符间要有空格 2.案例实操: (1)计 ...

  4. java 面向对象(三十七):反射(一) 反射的概述

    1.本章的主要内容 2.关于反射的理解 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属 ...

  5. (四)学习了解OrchardCore笔记——将模块的名字添加到程序集的ModuleName

    关于如何将模块名添加到程序集的ModuleName说简单吧也简单,说不简单吧也不简单. 简单的原因是代码只有几行,不简单的原因是这些都不是c#,都是MSbuild的代码.这可真难为我了,所以这个地方我 ...

  6. 【Nginx】如何封禁IP和IP段?看完这篇我会了!!

    写在前面 Nginx不仅仅只是一款反向代理和负载均衡服务器,它还能提供很多强大的功能,例如:限流.缓存.黑白名单和灰度发布等等.在之前的文章中,我们已经介绍了Nginx提供的这些功能.小伙伴们可以到[ ...

  7. Spring Boot Redis 实现分布式锁,真香!!

    之前看很多人手写分布式锁,其实 Spring Boot 现在已经做的足够好了,开箱即用,支持主流的 Redis.Zookeeper 中间件,另外还支持 JDBC. 本篇栈长以 Redis 为例(这也是 ...

  8. js 判断传入参数是域名还是地址

    var get = function(url) { if(location.protocol === "http") { return url; } var reg = /^(ht ...

  9. 宿主机连接docker中的mysql

    宿主机连接docker中的mysql   dokcer安装mysql docker run \ --name mysql \ -v $PWD/mysql:/var/lib/mysql \ -p 330 ...

  10. Android中的ANR问题

    ANR:(Application Not Responding) 1.为什么会产生ANR 在Android中App的相应能力是由Activity Manager和Window Manager系统服务来 ...