由于博主是做 javaweb 的,平时在做接口测试时可能需要很多模拟数据来测试接口性能。
于是,找到了python 的非标准库faker用来做接口测试,其实大量的伪信息数据在软件应用的开发过程中应用是比较多的。
立即前往微信小程序【知识星球】提问>>>
比如:数据库的性能测试,需要在当前情况下统计十年以后甚至更长时间产生的数据体量的情况下接口性能是否还能达到要求等等。
关于该模块的安装,直接使用pip的方式安装即可。
pip install faker
使用也比较简单,随后将该模块直接导入到当前的代码块中。
from faker import Faker
紧接着初始化Faker对象,然后根据该对象直接获取需要的伪信息。
fk = Faker()
下面直接使用其来生成一组伪信息:名称,伪信息:年龄。
print('姓名:',fk.name())
print('年龄:',fk.random.randint(10,21))
执行完成后的结果如下所示:
# 姓名:David Cook
# 年龄:17
若是需要生成很多组伪信息来做模拟数据使用,则可以使用多次循环等方式来生成,这里以生成50组的伪信息来举例
list_ = []
for n in range(50):
dict_ = {
'name': str(fk.name()),
'age': str(fk.random.randint(10,21)),
'email': str(fk.email()),
'ctr':str(fk.country())
}
list_.append(dict_)
这里为了使list列表的数据打印出来更容易观察,我是用了pprint模块。
from pprint import pprint
pprint(list_)
下面是生成的50组伪信息数据的结果。
# [{'age': '16',
# 'ctr': 'Eritrea',
# 'email': 'usherman@example.com',
# 'name': 'Ryan Price'},
# {'age': '13',
# 'ctr': 'Palestinian Territory',
# 'email': 'alex93@example.com',
# 'name': 'Derrick Rodriguez'},
# {'age': '12',
# 'ctr': 'Solomon Islands',
# 'email': 'charles66@example.com',
# 'name': 'James Santos'},
# {'age': '16',
# 'ctr': 'Cape Verde',
# 'email': 'ericksonbriana@example.com',
# 'name': 'Stacey Irwin'},
# {'age': '17',
# 'ctr': 'United States Minor Outlying Islands',
# 'email': 'rebeccaduran@example.net',
# 'name': 'Michelle Clarke'},
# {'age': '20',
# 'ctr': 'Bosnia and Herzegovina',
# 'email': 'cherylmason@example.com',
# 'name': 'Maureen Cruz'},
# {'age': '11',
# 'ctr': 'Guinea-Bissau',
# 'email': 'beckysantana@example.org',
# 'name': 'Christopher Guerrero'},
# {'age': '20',
# 'ctr': 'Dominica',
# 'email': 'francisco13@example.com',
# 'name': 'Jennifer Nunez MD'},
# {'age': '12',
# 'ctr': 'Ethiopia',
# 'email': 'opeterson@example.org',
# 'name': 'Erin Willis'},
# {'age': '20',
# 'ctr': 'Timor-Leste',
# 'email': 'pday@example.net',
# 'name': 'Karen Bailey'},
# {'age': '18',
# 'ctr': 'United States of America',
# 'email': 'gonzaleskayla@example.net',
# 'name': 'Renee Carr'},
# {'age': '17',
# 'ctr': 'Christmas Island',
# 'email': 'christine08@example.net',
# 'name': 'Amy Hayes'},
# {'age': '19',
# 'ctr': 'Solomon Islands',
# 'email': 'lisabartlett@example.com',
# 'name': 'Janice Hall'},
# {'age': '19',
# 'ctr': 'Seychelles',
# 'email': 'margaret90@example.org',
# 'name': 'John Summers'},
# {'age': '12',
# 'ctr': 'Brazil',
# 'email': 'nwalker@example.org',
# 'name': 'Zachary Williams'},
# {'age': '11',
# 'ctr': 'Costa Rica',
# 'email': 'udeleon@example.org',
# 'name': 'Michelle Pitts PhD'},
# {'age': '20',
# 'ctr': 'San Marino',
# 'email': 'whobbs@example.org',
# 'name': 'Ana Williams'},
# {'age': '18',
# 'ctr': 'Finland',
# 'email': 'kristy69@example.com',
# 'name': 'Jacob Powers'},
# {'age': '15',
# 'ctr': 'Syrian Arab Republic',
# 'email': 'pbooth@example.org',
# 'name': 'Joshua Jones'},
# {'age': '17',
# 'ctr': 'Zimbabwe',
# 'email': 'johnsonwilliam@example.com',
# 'name': 'Julie Gray'},
# {'age': '19',
# 'ctr': 'Trinidad and Tobago',
# 'email': 'gdelgado@example.net',
# 'name': 'Tom Berry'},
# {'age': '13',
# 'ctr': 'Solomon Islands',
# 'email': 'kimberlycarney@example.com',
# 'name': 'John Smith'},
# {'age': '11',
# 'ctr': 'Comoros',
# 'email': 'craigmckee@example.org',
# 'name': 'Lisa Holder'},
# {'age': '13',
# 'ctr': 'United States Minor Outlying Islands',
# 'email': 'kimberly91@example.com',
# 'name': 'Thomas Brewer'},
# {'age': '16',
# 'ctr': 'Croatia',
# 'email': 'sarah64@example.org',
# 'name': 'Jennifer Hodges'},
# {'age': '21',
# 'ctr': 'Sudan',
# 'email': 'kathleen93@example.com',
# 'name': 'Susan Hickman'},
# {'age': '17',
# 'ctr': 'Barbados',
# 'email': 'ytaylor@example.org',
# 'name': 'Elizabeth Miller'},
# {'age': '17',
# 'ctr': 'Malaysia',
# 'email': 'stephenharvey@example.net',
# 'name': 'Mr. David Bryan'},
# {'age': '18',
# 'ctr': 'Indonesia',
# 'email': 'jason88@example.com',
# 'name': 'Ryan Evans'},
# {'age': '20',
# 'ctr': 'Brazil',
# 'email': 'ngarcia@example.com',
# 'name': 'Jason Caldwell'},
# {'age': '14',
# 'ctr': 'United States Minor Outlying Islands',
# 'email': 'walkerwendy@example.net',
# 'name': 'Allen Lara'},
# {'age': '20',
# 'ctr': 'Spain',
# 'email': 'richard61@example.org',
# 'name': 'Sean Simon'},
# {'age': '16',
# 'ctr': 'Jamaica',
# 'email': 'nathanielbishop@example.net',
# 'name': 'Kara Madden'},
# {'age': '10',
# 'ctr': 'Estonia',
# 'email': 'hraymond@example.com',
# 'name': 'Sarah Wilson'},
# {'age': '16',
# 'ctr': 'Bahrain',
# 'email': 'perkinsmargaret@example.com',
# 'name': 'Sabrina Banks'},
# {'age': '11',
# 'ctr': 'Mali',
# 'email': 'fgomez@example.net',
# 'name': 'Janice Vargas'},
# {'age': '20',
# 'ctr': 'Panama',
# 'email': 'qmedina@example.net',
# 'name': 'Alice Pearson'},
# {'age': '13',
# 'ctr': 'Lebanon',
# 'email': 'ogay@example.com',
# 'name': 'Alec Rojas'},
# {'age': '10',
# 'ctr': 'Albania',
# 'email': 'crystal25@example.com',
# 'name': 'Rebecca Gray'},
# {'age': '18',
# 'ctr': 'Costa Rica',
# 'email': 'hudsonkelly@example.org',
# 'name': 'Kaitlin Martinez'},
# {'age': '19',
# 'ctr': 'Malta',
# 'email': 'joseph15@example.org',
# 'name': 'Jay Schultz'},
# {'age': '10',
# 'ctr': 'Czech Republic',
# 'email': 'anna27@example.net',
# 'name': 'Suzanne Zhang'},
# {'age': '17',
# 'ctr': 'Latvia',
# 'email': 'annamiller@example.net',
# 'name': 'Michelle Christian'},
# {'age': '13',
# 'ctr': 'Saudi Arabia',
# 'email': 'ericknox@example.org',
# 'name': 'Edward James'},
# {'age': '21',
# 'ctr': 'Bermuda',
# 'email': 'kathy93@example.org',
# 'name': 'Anthony Banks'},
# {'age': '17',
# 'ctr': 'Northern Mariana Islands',
# 'email': 'ghill@example.net',
# 'name': 'Kelly Ferrell'},
# {'age': '12',
# 'ctr': 'Cyprus',
# 'email': 'maryhardy@example.net',
# 'name': 'Ronald Hernandez'},
# {'age': '19',
# 'ctr': 'Antarctica (the territory South of 60 deg S)',
# 'email': 'oclark@example.com',
# 'name': 'Robert Howard'},
# {'age': '21',
# 'ctr': 'Liechtenstein',
# 'email': 'murraydavid@example.net',
# 'name': 'Tyler Lynch'},
# {'age': '12',
# 'ctr': 'Kenya',
# 'email': 'georgewong@example.net',
# 'name': 'Jennifer Jones'}]
通过pprint模块中的pprint接口打印出来的json数据还是很漂亮的,一眼就能看出json数据的结构层级。
「Python 集中营」,只做知识分享 !