一个python库搞定自动生成测试数据

简介: 一个python库搞定自动生成测试数据

1.fake introduce


Welcome to fake's documentation!

fake is a Python package that generates fake data for you ,github address: github.com/joke2k/fake… ,can get doc at : fake.readthedocs.io/en/master/


2.install


pip install fake


3.use


from fake import fake
f = fake()
# 随机生成姓名
print(f.name())
# 随机生成地址
print(f.address())
# 随机生成email
print(f.email())
# 随机生成password
print(f.password())
# 随机生成一段文本
print(f.text())
Keith Bridges
00582 Cathy Harbors Suite 865
North Christinachester, WY 29526
nicole14@example.net
PI3RGp_w@d
Worker describe wall management. Move position board dream talk cost. Live join service.
for _ in range(10):
    print(f.name())
Abigail Anderson
Sherry Barron
Lori Santos
Zachary Moran
Diana Santana
Megan Pierce
Jasmine Keith
Kyle Cowan
Richard Lucas
Zachary Contreras


4. language set


ar_EG - Arabic (Egypt)
ar_PS - Arabic (Palestine)
ar_SA - Arabic (Saudi Arabia)
bg_BG - Bulgarian
bs_BA - Bosnian
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_NZ - English (New Zealand)
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
hy_AM - Armenian
it_IT - Italian
ja_JP - Japanese
ka_GE - Georgian (Georgia)
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)
ro_RO - Romanian
ru_RU - Russian
sl_SI - Slovene
sv_SE - Swedish
tr_TR - Turkish
uk_UA - Ukrainian
zh_CN - Chinese (China)
zh_TW - Chinese (Taiwan)
from fake import fake
f = fake('zh_CN')
# 随机生成姓名
print(f.name())
# 随机生成地址
print(f.address())
# 随机生成email
print(f.email())
# 随机生成password
print(f.password())
# 随机生成一段文本
print(f.text())
刘倩
西藏自治区郑州县房山张街U座 322175
rdu@example.net
W%7R5mQwy7
美国新闻准备因此.销售正在过程论坛最新.行业更多应该所有电影谢谢的是.位置研究以后一般专业.
包括投资这样我的知道商品您的.社区全部不能程序其实点击.
空间发生国内工具.的是能够经营如果一个部门内容.是一或者也是组织设备其他结果.
网络回复那个表示非常.市场项目技术汽车时候.
一切公司日期论坛上海分析.以及可是管理各种密码市场是否日本.威望人员你的个人学生说明.


4.1姓名生成


from fake import fake
fake = fake("zh_CN")
print(fake.last_name())
print(fake.first_name())
print(fake.name_male())
玉兰
陆刚


4.2 地址生成


for i in range(2):
    print(fake.address())
    print(fake.building_number())
    print(fake.city())
    print(fake.city_name())
    print(fake.city_suffix())
    print(fake.country())
    print(fake.country_code(representation="alpha-2"))
    print(fake.district())
    print(fake.postcode())
    print(fake.province())
    print(fake.street_address())
    print(fake.street_name())
    print(fake.street_suffix())
    print(50*'*')
天津市刚县西峰张路z座 619643
W座
齐齐哈尔市
福州
加那利群岛
GE
东丽
781851
湖南省
长沙路R座
陆路
**************************************************
湖南省乌鲁木齐县南长呼和浩特街I座 183264
m座
琴县
香港
伊郎
CV
上街
475288
香港特别行政区
辛集街e座
徐路
**************************************************


4.3 公司生成


print(fake.bs())
print(fake.catch_phrase())
print(fake.company())
print(fake.company_prefix())
print(fake.company_suffix())
innovate virtual supply-chains
Stand-alone discrete application
毕博诚传媒有限公司
襄樊地球村
信息有限公司


4.3 信用卡生成


print(fake.credit_card_expire(start="now", end="+10y", date_format="%m/%y"))
print(fake.credit_card_full(card_type=None))
print(fake.credit_card_number(card_type=None))
print(fake.credit_card_provider(card_type=None))
02/28
Diners Club / Carte Blanche
红 曹
30251709384476 07/28
CVC: 093
213195678567133
Diners Club / Carte Blanche
973


4.4日期时间生成


fake.am_pm()
# 'AM'
fake.century()
# 'X'
fake.date(pattern="%Y-%m-%d", end_datetime=None)
# '1997-06-16'
fake.date_between(start_date="-30y", end_date="today")
# datetime.date(2000, 8, 30)
fake.date_between_dates(date_start=None, date_end=None)
# datetime.date(2019, 7, 30)
fake.date_object(end_datetime=None)
# datetime.date(1978, 3, 12)
fake.date_of_birth(tzinfo=None, minimum_age=0, maximum_age=115)
# datetime.date(2012, 6, 3)
fake.date_this_century(before_today=True, after_today=False)
# datetime.date(2011, 6, 12)
fake.date_this_decade(before_today=True, after_today=False)
# datetime.date(2011, 8, 22)
fake.date_this_month(before_today=True, after_today=False)
# datetime.date(2019, 7, 25)
fake.date_this_year(before_today=True, after_today=False)
# datetime.date(2019, 7, 22)
fake.date_time(tzinfo=None, end_datetime=None)
# datetime.datetime(2018, 8, 11, 22, 3, 34)
fake.date_time_ad(tzinfo=None, end_datetime=None, start_datetime=None)
# datetime.datetime(1566, 8, 26, 16, 25, 30)
fake.date_time_between(start_date="-30y", end_date="now", tzinfo=None)
# datetime.datetime(2015, 1, 31, 4, 14, 10)
fake.date_time_between_dates(datetime_start=None, datetime_end=None, tzinfo=None)
# datetime.datetime(2019, 7, 30, 17, 51, 44)
fake.date_time_this_century(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2002, 9, 25, 23, 59, 49)
fake.date_time_this_decade(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2010, 5, 25, 20, 20, 52)
fake.date_time_this_month(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2019, 7, 19, 18, 4, 6)
fake.date_time_this_year(before_now=True, after_now=False, tzinfo=None)
# datetime.datetime(2019, 3, 15, 11, 4, 18)
fake.day_of_month()
# '04'
fake.day_of_week()
# 'Monday'
fake.future_date(end_date="+30d", tzinfo=None)
# datetime.date(2019, 8, 12)
fake.future_datetime(end_date="+30d", tzinfo=None)
# datetime.datetime(2019, 8, 24, 2, 59, 4)
fake.iso8601(tzinfo=None, end_datetime=None)
# '1987-07-01T18:33:56'
fake.month()
# '11'
fake.month_name()
# 'August'
fake.past_date(start_date="-30d", tzinfo=None)
# datetime.date(2019, 7, 25)
fake.past_datetime(start_date="-30d", tzinfo=None)
# datetime.datetime(2019, 7, 18, 22, 46, 51)
fake.time(pattern="%H:%M:%S", end_datetime=None)
# '16:22:30'
fake.time_delta(end_datetime=None)
# datetime.timedelta(0)
fake.time_object(end_datetime=None)
# datetime.time(22, 12, 15)
fake.time_series(start_date="-30d", end_date="now", precision=None, distrib=None, tzinfo=None)
# <generator object Provider.time_series at 0x7fcbce0604f8>
fake.timezone()
# 'Indian/Comoro'
fake.unix_time(end_datetime=None, start_datetime=None)
# 1182857626
fake.year()
# '1970'
'1982'


4.5 文件生成


fake.file_extension(category=None)
# 'flac'
fake.file_name(category=None, extension=None)
# '然后.numbers'
fake.file_path(depth=1, category=None, extension=None)
# '/关系/科技.mov'
fake.mime_type(category=None)
# 'video/ogg'
fake.unix_device(prefix=None)
# '/dev/sdd'
fake.unix_partition(prefix=None)
# '/dev/xvds3'
'/dev/xvdw8'


4.6 假文字生成


fake.paragraph(nb_sentences=3, variable_nb_sentences=True, ext_word_list=None)
# '包括的是报告那些一点.图片地址基本全部.'
fake.paragraphs(nb=3, ext_word_list=None)
# [   '计划规定这样所以组织商品其中.参加成为不同发表地区.精华科技谢谢大家需要.一下手机上海中文工程.',
#     '非常相关是一就是一个一种文章发生.增加那些以及之后以下你的.',
#     '学生应该出来分析增加关系组织.评论来源朋友注册应该需要单位.感觉最后无法发现选择人民.']
fake.sentence(nb_words=6, variable_nb_words=True, ext_word_list=None)
# '介绍结果自己解决处理.'
fake.sentences(nb=3, ext_word_list=None)
# ['查看其实一次学习登录浏览是一他们.', '而且资源的人事情.', '科技价格免费大学教育.']
fake.text(max_nb_chars=200, ext_word_list=None)
# ('只是当前国内中文所以.威望系统在线虽然.n'
#  '图片人民非常合作这种谢谢更新.名称详细直接社会一直首页完全.n'
#  '重要更多只要市场.必须只是学生音乐.系统美国类别这些一切环境.n'
#  '但是的话人民美国关于.n'
#  '情况专业国际看到研究.音乐环境市场搜索发现.n'
#  '工具还是到了今天位置人民.留言作者品牌工程项目必须.上海精华现在我们新闻应该关系.n'
#  '更新经济能力全部资源如果.手机能够登录国内.')
fake.texts(nb_texts=3, max_nb_chars=200, ext_word_list=None)
# [   '成功可能推荐你的行业.地区而且推荐.n'
#     '网络不断是一主要必须.开始安全服务.n'
#     '应该网上通过以后通过大学.管理要求有关国际阅读当前.为了应该结果点击公司开始怎么.n'
#     '成功一次最大生产网站.这种加入她的地址有限.n'
#     '根据新闻汽车起来非常主题显示必须.有些建设来自作者电话支持.n'
#     '只是资源还是由于经济事情喜欢.为什中文大小得到服务.网络密码是否免费参加一次社区欢迎.',
#     '部门活动技术.商品影响发生行业密码完成.就是部门结果资料学习当然.或者帮助城市要求首页市场教育你们.n'
#     '专业完全分析处理城市大学什么.n'
#     '文件非常国际全部起来积分公司.资料的是电影没有.这是本站需要.n'
#     '合作重要没有现在市场开发空间.您的会员推荐成功教育进行中国.n'
#     '文件不是如果评论.因为经验设备规定.n'
#     '加入一起影响网上大家运行在线如果.工程企业这种以后.',
#     '空间市场出现必须基本电话.显示一个标准其他设计作品.工程不断新闻问题更多更新这么.n'
#     '一起简介网上内容不会.任何知道各种两个.类别事情经营那么投资市场.n'
#     '那些使用介绍公司朋友人民你们浏览.应该表示一点一般说明主要谢谢.电话回复起来经验一个来源加入.n'
#     '地区法律其他表示虽然.参加社会喜欢有限论坛一般发布.类别目前文化可以.n'
#     '报告质量工作主要.企业发布完全.得到名称作者等级两个论坛只要电话.']
fake.word(ext_word_list=None)
# '注意'
fake.words(nb=3, ext_word_list=None, unique=False)
# ['责任', '组织', '以后']
['其他', '手机', '这些']


4.7 Misc


fake.boolean(chance_of_getting_true=50)
# True
fake.md5(raw_output=False)
# '3166fa26ffd3f2a33e020dfe11191ac6'
fake.null_boolean()
# False
fake.password(length=10, special_chars=True, digits=True, upper_case=True, lower_case=True)
# 'W7Ln8La@%O'
fake.sha1(raw_output=False)
# 'c8301a2a79445439ee5287f38053e4b3a05eac79'
fake.sha256(raw_output=False)
# '1e909d331e20cf241aaa2da894deae5a3a75e5cdc35c053422d9b8e7ccfa0402'
fake.uuid4()
# '6e6fe387-6877-48d9-94ea-4263c4c71aa5'
'2fdabcea-b997-4710-adbf-5ae741094561'


5.seed设置


from faker import Faker
# 设置seed 值
Faker.seed(1222)
fake = Faker("zh_CN")
print(fake.credit_card_full())
print(fake.date_time())
JCB 16 digit
小红 赵
3559784836633188 07/22
CVC: 450
1974-08-10 20:18:48


目录
相关文章
|
11天前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
26 4
|
14天前
|
XML 存储 数据库
Python中的xmltodict库
xmltodict是Python中用于处理XML数据的强大库,可将XML数据与Python字典相互转换,适用于Web服务、配置文件读取及数据转换等场景。通过`parse`和`unparse`函数,轻松实现XML与字典间的转换,支持复杂结构和属性处理,并能有效管理错误。此外,还提供了实战案例,展示如何从XML配置文件中读取数据库连接信息并使用。
Python中的xmltodict库
|
21天前
|
数据库 Python
异步编程不再难!Python asyncio库实战,让你的代码流畅如丝!
在编程中,随着应用复杂度的提升,对并发和异步处理的需求日益增长。Python的asyncio库通过async和await关键字,简化了异步编程,使其变得流畅高效。本文将通过实战示例,介绍异步编程的基本概念、如何使用asyncio编写异步代码以及处理多个异步任务的方法,帮助你掌握异步编程技巧,提高代码性能。
53 4
|
21天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
在Python编程中,随着网络应用和数据处理需求的增长,并发编程变得愈发重要。asyncio库作为Python 3.4及以上版本的标准库,以其简洁的API和强大的异步编程能力,成为提升性能和优化资源利用的关键工具。本文介绍了asyncio的基本概念、异步函数的定义与使用、并发控制和资源管理等核心功能,通过具体示例展示了如何高效地编写并发代码。
30 2
|
16天前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
20天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
19天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
52 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
68 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
252 7
Jmeter实现WebSocket协议的接口测试方法
|
3月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
263 3
快速上手|HTTP 接口功能自动化测试