每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
01
随机测试数据生成
在测试的过程中有时候我们需要造数据,并且希望这些数据看起来像真的一样,同时在自动化测试 时也需要一些动态数据(比如手机号、当前日期时间、随机字符串等等),这些手动构造耗时耗力,本文 将带领大家学习一个伪数据的生成工具-Faker。
01 什么是Faker
Faker是python方向的一个第三方库,主要用来创造伪数据,使用Faker,人们不再需要手动或者手写随机数来生成数据,只需要调用Faker提供的相关api即可完成数据的生成
02 安装Faker
#windows下执行
pip install faker
#mac下执行
python3 -mpip install faker
03 Faker引用及初始化
from faker import Faker
# 初始化,设置locale为中文;默认是英文
fake = Faker(locale = 'zh_CN')
这里的locale参数可以理解成你要生成哪种类型的随机数据,英文形式的、中文形式的、德语的等等
04 日期类随机数据
print('年月日:', fake.date(pattern = '%Y-%m-%d'))
print('随机年份:', fake.year())
print('随机年份:', fake.year())
print('随机月份:',fake.month())
print('随机几号:', fake.day_of_month())
print('随机星期数:', fake.day_of_week())
print('时间:', fake.time(pattern = '%H:%M:%S'))
# -30y是过去30年前为开始日期,end_date表示结束到今天
print('过去某一天:',fake.date_between(start_date="-30y", end_date="today"))
print('今天:',fake.date_between_dates())#今天
print('日期和时间:',fake.date_time()) #2021-05-14 19:36:00
print('当前日期时间:',fake.date_time_between_dates())
print('某个区间内随机日期时 间:',fake.date_time_between_dates(datetime_start=datetime(1999,2,2,10,30,20),dat etime_end=datetime(2000,2,2,10,30,20)))
print('未来的日期:',fake.future_date(end_date="+30d"))
print('未来的日期时间:',fake.future_datetime(end_date="+30d"))# 未来日期和时间)
print('过去的日期:',fake.past_date(start_date="-30m"))# 过去日期
print('过去的日期时间:',fake.past_datetime(start_date="-30d"))# 过去日期和时间
print('时间戳:',fake.unix_time())
结果如下,大家可以对比下
年月日:2004-03-17
随机年份:2012
随机年份:1992
随机月份:06
随机几号:02
随机星期数:Wednesday
时间: 15:40:26
过去某一天:2007-01-05
今天:2021-12-20
日期和时间: 2015-07-26 18:07:37
当前日期时间:2021-12-20 17:00:17
某个区间内随机日期时间:1999-05-23 03:00:03
未来的日期:2021-12-28
未来的日期时间:2022-01-12 06:52:26
过去的日期:2021-12-19
过去的日期时间: 2021-12-04 17:39:41
时间戳:1201651489
05 随机字符串/数字/加密
print('随机字符串:',fake.pystr())
print('随机小写字母:',fake.random_element())
print('随机大写字母:',fake.random_letter())
print('随机一个段落:',fake.paragraph())
print('随机一句话:',fake.sentence())
print('随机一篇文章:',fake.text())
print('随机一个词语:',fake.word())
# print('随机二进制编码:',fake.binary())
print('随机Ture和False:',fake.boolean())
print('随机md5:',fake.md5())
print('随机密码:',fake.password())
print('随机SHA1:',fake.sha1())
print('随机sha256:',fake.sha256())
print('随机uuid:',fake.uuid4())
print('三位随机数字:',fake.numerify())
print('0-9随机数:',fake.random_digit())
print('1-9随机数:',fake.random_digit_not_null())
print('0-9999随机数:',fake.random_int())
print('指定位数的随机数:',fake.random_number(digits=5))
print('随机小数:',fake.pyfloat())
print('随机int数:',fake.pyint())
结果如下,大家可以对比下
随机字符串: KWGMcNmAbSaWRCLSzPmm
随机小写字母: b
随机大写字母: h
随机一个段落: 来源之间起来决定组织不是.无法查看希望原因他的.
随机一句话: 显示觉得一定操作作为.
随机一篇文章: 国际因为威望.全部显示法律用户网站没有能够空间.的人如果电脑方式论坛.内容有限一次但是要求重要.怎么其实类型为了网上.电影孩子其他世界加入当然地址.没有规定作品这么类型.他的这么两个应该学习.同时实现东西增加准备控制只要继续.市场您的电话.解决时候所有决定.其他一切文化只是.这个的话经验音乐.管理免费由于什么谢谢不能.正在方式作品无法. 帮助朋友大小历史知道.
随机一个词语: 本站
随机Ture和False: True
随机md5:3f6e3b09789337784493f0927cc51dcf
随机密码: tm75Aoz88_
随机SHA1:509568f80084adda671b05d3c3018695a1bea620
随机sha256: c479c7052d260aec91a0d33b5cd2785c4865747af02270b9d077f02e7126d216
随机uuid: dd2b83f0-e5d8-4cce-a644-f60eaca15e6d
三位随机数字: 680
0-9随机数: 2
1-9随机数: 6
0-9999随机数:3315
指定位数的随机数:26146
随机小数: -8048554.3903039
随机int数:7804
免费领取码同学软件测试课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章+ 私信「码同学666」获取资料哦
06 随机人物相关信息
print('人物名字:',fake.first_name()) # 名字
print('女性名字:',fake.first_name_female())
print('男性名字:',fake.first_name_male())
print('罗马文名字:',fake.first_romanized_name())
print('姓:',fake.last_name())
print('男性的姓:',fake.last_name_male())
print('女性的姓:',fake.last_name_female())
print('罗马文的性:',fake.last_romanized_name())
print('人物全名:',fake.name())
print('女性全名:',fake.name_female())
print('男性全名:',fake.name_male())
print('简略个人信息:', fake.simple_profile())
print('详细个人信息:', fake.profile())
print('生成身份证号:',fake.ssn())
print('生成手机号:',fake.phone_number())
print('生成手机号段:',fake.phonenumber_prefix())
print('完整信用卡信息:',fake.credit_card_full())
print('信用卡号:',fake.credit_card_number())
print("邮箱:", fake.email())
结果如下,大家可以对比下
人物名字: 桂芳
女性名字: 玉
男性名字: 东
罗马文名字:Guiying
姓: 包
男性的姓: 王
女性的姓: 夏
罗马文的性: Qiao
人物全名: 施斌
女性全名: 雷丽娟
男性全名: 周军
简略个人信息:{'username': 'guiying92', 'name': '孙雪', 'sex': 'F', 'address': '山 西省台北市丰都海口路n座 269807', 'mail': '[email protected]', 'birthdate': datetime.date(1912, 10, 19)}
详细个人信息:{'job': '清洁服务人员', 'company': '易动力信息有限公司', 'ssn': '320506195801305350',
'residence': '江苏省英县西夏罗路e座 172642', 'current_location':
(Decimal('-38.550926'), Decimal('-112.093486')), 'blood_group': 'O-',
'website': ['http://www.pingjun.cn/', 'http://12.cn/'], 'username':
'cxiang', 'name': '赖杨', 'sex': 'M', 'address': '湖南省合肥市双滦陈街y 座 762742',
'mail': '[email protected]', 'birthdate': datetime.date(1930, 12, 8)}
生成身份证号: 530621196509110591
生成手机号: 13188602771
生成手机号段:189
完整信用卡信息:VISA 16 digit
雷 樊
4721944675006067 10/30
CVC: 638
信用卡号:4568692860225937
07 随机地址信息数据
print('完整地址:', fake.address()) #上海市慧县沈河魏路j座 436993
print('街道+地址:', fake.street_address())#关岭街O座
print('街道名:', fake.street_name())#李路
print('城市名:', fake.city_name())#澳门
print('城市:', fake.city())#林市
print('区:',fake.district()) #华龙
print('省份名:', fake.province())#山西省
print('邮编:', fake.postcode())#361494
print('国家:', fake.country())#尼泊尔
print('国家编码:', fake.country_code())#ST
print('地理坐标(纬度):',fake.latitude()) #28.936546
print('地理坐标(经度):',fake.longitude())#-152.654212
结果如下,大家可以对比下
完整地址: 浙江省淮安县朝阳长春街c座 205711
街道+地址:巢湖路y座
街道名:太原街
城市名:巢湖
城市:长春市
区:高坪
省份名:广东省
邮编:738372
国家:葡萄牙
国家编码:TW
地理坐标(纬度): -19.917272
地理坐标(经度): 166.694798
08 随机公司信息数据
print('公司名:', fake.company())
print('公司名后缀:', fake.company_suffix())
print('公司名前缀:', fake.company_prefix())
print('企业邮箱:', fake.company_email())
结果如下,大家可以对比下
公司名:通际名联科技有限公司
公司名后缀:传媒有限公司
公司名前缀:凌云
企业邮箱: [email protected]
09 随机网络信息数据
print('生成域名:',fake.domain_name())
print('生成ipv4:',fake.ipv4())
print('生成ipv6:',fake.ipv6())
print('生成MAC地址:',fake.mac_address())
print('生成uri地址:',fake.uri())
print('生成url地址:',fake.url())
print('随机用户名:',fake.user_name())
结果如下,大家可以对比下
生成域名: yanglei.cn
生成ipv4: 149.178.117.123
生成ipv6: d366:4b0b:3884:5c96:dc8e:edbb:1a0:8080
生成MAC地址: d6:0d:d9:e3:45:ad
生成uri地址: http://www.mingu.cn/
生成url地址: https://jie.cn/
随机用户名: sunjun
10 随机用户代理信息
print('随机安卓代理信息:',fake.ios_platform_token())
print('随机ios代理信息:',fake.android_platform_token())
print('随机chrome代理信息:',fake.chrome())
print('随机firefox代理信息:',fake.chrome())
print('随机ie代理信息:',fake.internet_explorer())
print('随机opera代理信息:',fake.opera())
print('随机safari代理信息:',fake.safari())
print('随机代理信息:',fake.user_agent())
print('随机windows代理信息:',fake.windows_platform_token())
print('随机mac代理信息:',fake.mac_platform_token())
结果如下,大家可以对比下
随机安卓代理信息:iPad; CPU iPad OS 10_3_3 like Mac OS X
随机ios代理信息:Android 6.0.1
随机chrome代理信息: Mozilla/5.0 (Linux; Android 8.1.0) AppleWebKit/531.0
(KHTML, like Gecko) Chrome/49.0.818.0 Safari/531.0
随机firefox代理信息:Mozilla/5.0 (Linux; Android 3.2) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/52.0.824.0 Safari/533.2
随机ie代理信息: Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 6.2; Trident/4.0)
随机opera代理信息: Opera/8.94.(X11; Linux x86_64; bem-ZM) Presto/2.9.169 Version/10.00
随机safari代理信息: Mozilla/5.0 (Windows; U; Windows 98; Win 9x 4.90) AppleWebKit/535.5.5 (KHTML, like
Gecko
) Version/4.0 Safari/535.5.5
随机代理信息: Mozilla/5.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/5.0)
随机windows代理信息:Windows 98
随机mac代理信息: Macintosh; PPC Mac OS X 10 11_9
END
免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。