通过 Python_Faker 生成测试数据
通过 Python_Faker 生成测试数据
一.介绍
在软件需求、开发、测试过程中,有时候需要使用一些测试数据,针对这种情况,我们一般要么使用已有的系统数据,你不可能通过手工来生成(最傻的方法)可能需要花费大量精力和工作量, Faker 包能够协助你完成这方面的工作。
Faker 是一个 Python 包,开源的 GITHUB 项目,主要用来创建伪数据。
二.安装
- 通过 pip 直接安装:
[root@BenLam-vm_0 ~]# pip install faker
- 下载源码安装:
[root@BenLam-vm_0 ~]# git clone https://github.com/joke2k/faker
done~
[root@BenLam-vm_0 ~]# cd faker
[root@BenLam-vm_0 ~]# python setup.py install
install done~
[root@BenLam-vm_0 ~]#
三.例子
from faker import Faker
fake=Faker(locale='zh_CN') # 默认为 en_US
# 邮政编码
print("邮政编码".center(20,"-"))
print(fake.postcode()) # 邮编
# 地址类
print("地址类".center(20,"-"))
print(fake.address()) # 湖南省想县沈河阜新街C座 604896
print(fake.street_address()) # 邓路J座
print(fake.street_name()) #马鞍山路
print(fake.city_name(),fake.city()) # 大冶 马鞍山县
print(fake.province()) #贵州省
#公司类:
print("公司类".center(20,"-"))
print(fake.company())#商软冠联科技有限公司
print(fake.company_suffix())#信息有限公司
print(fake.company_prefix())#天开
#个人信息类
print("个人信息类".center(20,"-"))
print(fake.name())#傅淑华
print(fake.simple_profile()) # {'username': 'mengming', 'name': '徐秀云', 'sex': 'M', 'address': '安徽省玉兰县东城乌鲁木齐路w座 117935', 'mail': 'chao09@gmail.com', 'birthdate': datetime.date(1976, 8, 6)}
print(fake.user_name(),fake.password(special_chars=False)) #qiang66 yd7TgJkSvX
#文章类
print("文章类".center(20,"-"))
print(fake.word())#中国
print(fake.words(3))#['北京', '参加', '因为']
print(fake.sentence(3))#而且.
print(fake.paragraph())#人企业学校阅读能够现在其他.以下关于查看
打印结果:
--------邮政编码--------
621325
--------地址类---------
海南省燕市朝阳武汉路G座 856051
沈阳路K座
张街
长沙 佳市
宁夏回族自治区
--------公司类---------
凌颖信息信息有限公司
科技有限公司
快讯
-------个人信息类--------
李秀荣
{'username': 'suchao', 'name': '杨帆', 'sex': 'M', 'address': '青海省慧县徐汇济南路w座 991385', 'mail': 'etang@gmail.com', 'birthdate': datetime.date(2001, 1, 8)}
opan 1NFlibRcvO
--------文章类---------
今天
['功能', '报告', '密码']
一个需要.
那些这是或者.如此全部电子一些起来这里.
[Finished in 0.5s]
四.常用方法
常用方法与中文解释
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():用法同
datesfuture_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邮箱
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():随机
SHA1sha256():随机
SHA256uuid4():随机UUID
first_name():人名
first_name_female():女性名
first_name_male():男性名
first_romanized_name():罗马名
last_name_female():女姓
last_name_male():男姓
name():随机生成全名
name_female():男性全名
name_male():女性全名
romanized_name():罗马名
msisdn():移动台国际用户识别码,即移动用户的ISDN号码
phone_number():随机生成手机号
phonenumber_prefix():随机生成手机号段
profile():随机生成档案信息
simple_profile():随机生成简单档案信息
通过 Python_Faker 生成测试数据的更多相关文章
- db:seed 更好的生成测试数据
make:model -m -> 在database/migrations/目录下生成的table表中设置表的字段名和字段类型->在app/目录下对应的模型文件中设置可添加字段 -> ...
- Powerdesigner中如何生成测试数据
设计表完成以后,我们需要生成一些测试数据,可以直接更新到数据库中,下面我们就来试试: 第一步:建立需要的Profiles测试文件,[Model]--[Test Data Profiles],如图所示: ...
- SQL Server中生成测试数据
原文:SQL Server中生成测试数据 简介 在实际的开发过程中.很多情况下我们都需要在数据库中插入大量测试数据来对程序的功能进行测试.而生成的测试数据往往需要符合特定规则.虽然可以自己写 ...
- 使用Visual Studio给SQL生成测试数据
参考:http://www.cnblogs.com/CareySon/archive/2012/02/20/2359444.html 使用VS2010的数据生成计划来生成测试数据 以下面两个表来做例子 ...
- pt-online-schema-change 测试使用-包含生成测试数据
pt-online-schema-change 测试使用-包含生成测试数据 # 参考网址: https://www.2cto.com/database/201703/618280.html 一.简要描 ...
- Spark2.2+ES6.4.2(三十一):Spark下生成测试数据,并在Spark环境下使用BulkProcessor将测试数据入库到ES
Spark下生成2000w测试数据(每条记录150列) 使用spark生成大量数据过程中遇到问题,如果sc.parallelize(fukeData, 64);的记录数特别大比如500w,1000w时 ...
- 使用Hypothesis生成测试数据
Hypothesis是Python的一个高级测试库.它允许编写测试用例时参数化,然后生成使测试失败的简单易懂的测试数据.可以用更少的工作在代码中发现更多的bug. 安装 pip install hyp ...
- Faker——生成测试数据的PHP类库
工作上用的是TP框架,每次测试功能的时候都要手动添加测试数据,词穷起名总是起一些test1.test2这种low到爆炸的用户名,这让我很难受.稍微翻阅了一些资料,发现laravel有一个生成测试数据的 ...
- python-利用faker模块生成测试数据
Python-利用faker模块生成测试数据 1.前言: Faker模块是一个生成伪数据的第三方模块,他提供了一系列方法,使用非常方便,在做自动化测试时,注册信息,用这个模块生成测试数据就体现了它的好 ...
随机推荐
- 为什么机器能够学习——PAC Learnability
机器学习中,我们根据训练集训练一个模型,来对测试数据进行预测.通常我们并不关心模型在训练集上的好坏(即训练误差,in sample error),举个简单例子,我们想要根据前六个月股市行情训练一个模型 ...
- 【题解】洛谷P1514 [NOIP2010TG] 引水入城(DFS+DP)
次元传送门:洛谷P1514 思路 可以证明如果有解 那么每个蓄水池可以覆盖到的干旱区必定是线段 证明: 举个栗子 8 9 8 7 9 7 6 9 6 明显到不了中间的点 如果不是连续的线段 中间肯定有 ...
- 【题解】洛谷P1896 [SCOI2005] 互不侵犯(状压DP)
洛谷P1896:https://www.luogu.org/problemnew/show/P1896 前言 这是一道状压DP的经典题 原来已经做过了 但是快要NOIP 复习一波 关于一些位运算的知识 ...
- HDU 1022 Train Problem I(栈的操作规则)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1022 Train Problem I Time Limit: 2000/1000 MS (Java/Ot ...
- C/C++ Windows API——获取计算机信息 转
转自:http://blog.csdn.net/chy555chy/article 函数 头文件 作用 GetVersionEx <windows.h> 获取系统版本信息(deprecat ...
- iOS之改变UIAlertViewController字体的颜色
NSString *message = @"请确认信息是否正确?"; NSString *title = @"提示"; UIAlertController *a ...
- 【js】深拷贝和浅拷贝区别,以及实现深拷贝的方式
一.区别:简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝. 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这 ...
- LeetCode 简单 -二进制求和(105)
给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1" 输出: ...
- CSS实现图片等比例缩小不变形
<img src="../images/bg1.jpg" alt="" /> img { /*等宽缩小不变形*/ /*width: 100%;*/ ...
- 虚拟机(unbutun16.04)设置静态ip
电脑上装了虚拟机,想用xshell连接,无奈按照默认的网络设置方式每次重启了虚拟机后都要修改ip才能访问,这怎么能忍,经过一番折腾终于搞定这个问题了,解决步骤如下: 大步骤分为两步:其一是主机的设置, ...