在软件需求、开发、测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,要么需要手动制造一些数据。

在手动制造数据的过程中,可能需要花费大量精力和工作量,现在好了,有一个Python包能够协助你完成这方面的工作。

1.什么是Faker

Faker是一个Python包,开源的GITHUB项目,主要用来创建伪数据,使用Faker包,无需再手动生成或者手写随机数来生成数据,只需要调用Faker提供的方法,即可完成数据的生成。

项目地址:https://github.com/joke2k/faker

2.安装Faker

方法一:

pip install faker

方法二:

通过上方提供的github地址,来下载编译安装。

3.Faker的使用

引用包:

from faker import Faker

初始化:

f=Faker(locale='zh_CN')

关于初始化参数locale:为生成数据的文化选项,默认为en_US,只有使用了相关文化,才能生成相对应的随机信息(比如:名字,地址,邮编,城市,省份等)

可选择的文化信息:

ar_EG - Arabic (Egypt)

ar_PS - Arabic (Palestine)

ar_SA - Arabic (Saudi Arabia)

bg_BG - Bulgarian

cs_CZ - Czech

de_DE - German

dk_DK - Danish

el_GR - Greek

en_AU - English (Australia)

en_CA - English (Canada)

en_GB - English (Great Britain)

en_US - English (United States)

es_ES - Spanish (Spain)

es_MX - Spanish (Mexico)

et_EE - Estonian

fa_IR - Persian (Iran)

fi_FI - Finnish

fr_FR - French

hi_IN - Hindi

hr_HR - Croatian

hu_HU - Hungarian

it_IT - Italian

ja_JP - Japanese

ko_KR - Korean

lt_LT - Lithuanian

lv_LV - Latvian

ne_NP - Nepali

nl_NL - Dutch (Netherlands)

no_NO - Norwegian

pl_PL - Polish

pt_BR - Portuguese (Brazil)

pt_PT - Portuguese (Portugal)

ru_RU - Russian

sl_SI - Slovene

sv_SE - Swedish

tr_TR - Turkish

uk_UA - Ukrainian

zh_CN - Chinese (China)

zh_TW - Chinese (Taiwan)

然后即可使用系统提供的方法:

 

一段简单的测试代码

f.name()  #生成姓名

f.address() #生成地址

4.常用方法一览

city_suffix():市,县

country():国家

country_code():国家编码

district():区

geo_coordinate():地理坐标

latitude():地理坐标(纬度)

longitude():地理坐标(经度)

lexify():替换所有问号(“?”)带有随机字母的事件。

numerify():三位随机数字

postcode():邮编

province():省份

street_address():街道地址

street_name():街道名

street_suffix():街、路

random_digit():0~9随机数

random_digit_not_null():1~9的随机数

random_element():随机字母

random_int():随机数字,默认0~9999,可以通过设置min,max来设置

random_letter():随机字母

random_number():随机数字,参数digits设置生成的数字位数

color_name():随机颜色名

hex_color():随机HEX颜色

rgb_color():随机RGB颜色

safe_color_name():随机安全色名

safe_hex_color():随机安全HEX颜色

bs():随机公司服务名

company():随机公司名(长)

company_prefix():随机公司名(短)

company_suffix():公司性质

credit_card_expire():随机信用卡到期日

credit_card_full():生成完整信用卡信息

credit_card_number():信用卡号

credit_card_provider():信用卡类型

credit_card_security_code():信用卡安全码

currency_code():货币编码

am_pm():AM/PM

century():随机世纪

date():随机日期

date_between():随机生成指定范围内日期,参数:start_date,end_date取值:具体日期或者today,-30d,-30y类似

date_between_dates():随机生成指定范围内日期,用法同上

date_object():随机生产从1970-1-1到指定日期的随机日期。

date_this_month():

date_this_year():

date_time():随机生成指定时间(1970年1月1日至今)

date_time_ad():生成公元1年到现在的随机时间

date_time_between():用法同dates

future_date():未来日期

future_datetime():未来时间

month():随机月份

month_name():随机月份(英文)

past_date():随机生成已经过去的日期

past_datetime():随机生成已经过去的时间

time():随机24小时时间

timedelta():随机获取时间差

time_object():随机24小时时间,time对象

time_series():随机TimeSeries对象

timezone():随机时区

unix_time():随机Unix时间

year():随机年份

file_extension():随机文件扩展名

file_name():随机文件名(包含扩展名,不包含路径)

file_path():随机文件路径(包含文件名,扩展名)

mime_type():随机mime Type

ascii_company_email():随机ASCII公司邮箱名

ascii_email():随机ASCII邮箱

ascii_free_email():

ascii_safe_email():

company_email():

domain_name():生成域名

domain_word():域词(即,不包含后缀)

email():

free_email():

free_email_domain():

f.safe_email():安全邮箱

f.image_url():随机URL地址

ipv4():随机IP4地址

ipv6():随机IP6地址

mac_address():随机MAC地址

tld():网址域名后缀(.com,.net.cn,等等,不包括.)

uri():随机URI地址

uri_extension():网址文件后缀

uri_page():网址文件(不包含后缀)

uri_path():网址文件路径(不包含文件名)

url():随机URL地址

user_name():随机用户名

isbn10():随机ISBN(10位)

isbn13():随机ISBN(13位)

job():随机职位

paragraph():随机生成一个段落

paragraphs():随机生成多个段落,通过参数nb来控制段落数,返回数组

sentence():随机生成一句话

sentences():随机生成多句话,与段落类似

text():随机生成一篇文章(不要幻想着人工智能了,至今没完全看懂一句话是什么意思)

word():随机生成词语

words():随机生成多个词语,用法与段落,句子,类似

binary():随机生成二进制编码

boolean():True/False

language_code():随机生成两位语言编码

locale():随机生成语言/国际 信息

md5():随机生成MD5

null_boolean():NULL/True/False

password():随机生成密码,可选参数:length:密码长度;special_chars:是否能使用特殊字符;digits:是否包含数字;upper_case:是否包含大写字母;lower_case:是否包含小写字母

sha1():随机SHA1

sha256():随机SHA256

uuid4():随机UUID

first_name():

first_name_female():女性名

first_name_male():男性名

first_romanized_name():罗马名

last_name():

last_name_female():女姓

last_name_male():男姓

last_romanized_name():

name():随机生成全名

name_female():男性全名

name_male():女性全名

romanized_name():罗马名

msisdn():移动台国际用户识别码,即移动用户的ISDN号码

phone_number():随机生成手机号

phonenumber_prefix():随机生成手机号段

profile():随机生成档案信息

simple_profile():随机生成简单档案信息

随机生成指定类型数据:

pybool():

pydecimal():

pydict():

pyfloat():left_digits=5 #生成的整数位数,

right_digits=2 #生成的小数位数,

positive=True #是否只有正数

pyint():

pyiterable()

pylist()

pyset()

pystr()

pystruct()

pytuple()

ssn():生成身份证号

chrome():随机生成Chrome的浏览器user_agent信息

firefox():随机生成FireFox的浏览器user_agent信息

internet_explorer():随机生成IE的浏览器user_agent信息

opera():随机生成Opera的浏览器user_agent信息

safari():随机生成Safari的浏览器user_agent信息

linux_platform_token():随机Linux信息

user_agent():随机user_agent信息

 

5.使用中遇到的问题

   元旦前发布的这篇文章,由于工作需要,元旦期间创建伪数据的过程中,发现一个很有意思的问题。不同的文化类之间,方法是偶然有区别的。

比如,在中文(zh_CN)中的方法,district()#获取区   province()#获取省的方法,在有些包里是没有的,这需要根据所使用文化类的国家特制来。

使用日文包没有province方法

比如,中国的一级行政单位,是省,直辖市,自治区;而日本的一级行政单位,是都、道、府、县。所以,日文包(ja_JP)中,就没有相应的province(),district(),取而代之的是prefecture(),town();在美国,一级行政单位又是洲,所以,在美国英语包(en_US)中,取而代之的是state();

总之,在使用不同Fake类之前,最好对所生成文化的国家信息做初步的了解,建议先浏览其对应的类文件的成员。

作者:三胖道长
链接:https://www.jianshu.com/p/6bd6869631d9
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

python之造测试数据-faker(转载)的更多相关文章

  1. 使用python批量造测试数据

    # -*- coding:utf-8 -*- import json import os import time class Virtual_Data: def __init__(self): sel ...

  2. 用python开发android应用 【转载】

    用python开发android应用 [转载] 转载自:http://www.miui.com/thread-995114-1-1.html Python是动态语言,比较简洁.Android不直接支持 ...

  3. Mysql 存储过程造测试数据

    1.Mysql 存储过程造测试数据 -- 创建一个用户表 CREATE TABLE `sys_user` ( -- `id` CHAR (32) NOT NULL DEFAULT '' COMMENT ...

  4. Python生成测试数据-Faker(非LOL选手-李相赫)

    Faker介绍 官方文档:https://faker.readthedocs.io/en/master/ Faker is a Python package that generates fake d ...

  5. 【Python】模块学习之利用string模块造测试数据

    背景 测试过程中需要一些随机数据,使用到了python中的string模块,记录一下 #! /usr/bin/python # coding:utf-8 """ @aut ...

  6. 【转帖】Python 重复造轮子/造轮子找模子,你都应该熟读该文

    Chardet,字符编码探测器,可以自动检测文本.网页.xml的编码. colorama,主要用来给文本添加各种颜色,并且非常简单易用. Prettytable,主要用于在终端或浏览器端构建格式化的输 ...

  7. python模块一之faker模块

    faker模块主要是用来创建伪数据,无需手动生成或者手写随机数来生成数据,可以利用faker完成伪造大量测试数据的工作 一.安装 pip install faker 二.使用 from faker i ...

  8. 关于python如何构造测试数据

    参考资料:https://www.cnblogs.com/miaoxiaochao/p/13234589.html 一.Faker模块是什么? 一个Python第三方模块,主要用来创建伪数据 无需再手 ...

  9. Python验证码识别处理实例(转载)

    版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处http://blog.csdn.net/evankaka 一.准备工作与代码实例 1.PIL.pytesser.tesseract ...

随机推荐

  1. python接口自动化-get请求

    一.环境安装 1.用pip安装requests模块 >>pip install requests 二.get请求 1.  url 1.1:   response 的返回内容还有很多信息,例 ...

  2. web框架开发-模板层

    你可能已经注意到我们在例子视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python代码之中. def current_datetime(request): now = datet ...

  3. 20175310 《Java程序设计》第9周学习总结

    20175310 <Java程序设计>第9周学习总结 本周博客:https://www.cnblogs.com/xicyannn/p/10785915.html 教材学习内容总结 这周学习 ...

  4. java将对象转map,map转对象工具类

    /** * 将map转换为一个对象 * * @param map * @param beanClass * @return * @throws Exception */ public static O ...

  5. Java 控制语句

    Java 控制语句

  6. 六招轻松搞定你的CentOS系统安全加固

    Redhat是目前企业中用的最多的一类Linux,而目前针对Redhat攻击的黑客也越来越多了.我们要如何为这类服务器做好安全加固工作呢?  一.  账户安全 1.1 锁定系统中多余的自建帐号 检查方 ...

  7. 微信小程序中用户登录和登录态维护

    提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户信息的纯工具软件. 让用户 ...

  8. alert执行时机和js线性模型 事件循环

    <div class="test">测试内容</div> <script> $('.test').text('内容改变') alert($('. ...

  9. SQL的一些基础查询语法

     基础.限定.模糊查询     关键字都是大写. 使用 BETWEENN AND 的时候小的数字或者日期放到  AND(并且)  的面前,大的一个放到AND 后面.   数据操纵语言SQL分类(DML ...

  10. ORM框架SQLAlchemy

    SQLAlchemy orm英文全称object relational mapping,就是对象映射关系程序,简单来说就是类似python这种面向对象的程序来说一切皆对象,但是使用的数据库却都是关系型 ...