每天进步一点点,关注我们哦,每天分享测试技术文章 本文章出自【码同学软件测试】 码同学公众号:自动化软件测试 码同学抖音号:小码哥聊软件测试 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': 'yanzhou@hotmail.com', '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': 'mdong@yahoo.com', 'birthdate': datetime.date(1930, 12, 8)} 生成身份证号: 530621196509110591 生成手机号: 13188602771 生成手机号段:189 完整信用卡信息:VISA 16 digit 雷 樊 4721944675006067 10/30 CVC: 638 信用卡号:4568692860225937 邮箱: yong50@yahoo.com 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()) 结果如下,大家可以对比下 公司名:通际名联科技有限公司 公司名后缀:传媒有限公司 公司名前缀:凌云 企业邮箱: zhaona@yefeng.org 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 免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试 本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。