测试数据不会造?看这篇文章就够了
所谓的光辉岁月,并不是以后,闪耀的日子,是你对梦想的偏执。
作为软件开发过程中一个非常重要的环节,软件测试越来越成为软件开发商和用户关注的焦点。完善的测试是软件质量的保证,因此软件测试就成了一项重要而艰巨的工作。要做好这项工作当然也绝非易事。下面我就讲讲我造测试数据的一些经验和技巧,以供大家参考。
Faker
一、faker 安装
pip install faker
二、使用
- 模块导入
- from faker import Faker
- 创建实例
- fk = Faker(locale='zh-CN')
- 参数 use_weighting:指定是否尝试使值的频率与真实世界的频率相匹配 locale='zh-CN':语言环境,默认的 en_US 语言环境,支持传多个 ['ja_JP','en_US','zh-CN']
- 常用方法
- 四要素 姓名
name = fk.name() 身份证
id_card = fk.ssn() 手机号
phone = fk.phone_number() 银行卡(信用卡)
card = fk.credit_card_number() - 个人其他信息 地址(带邮编)
addr = fk.address() 国家名称
country = fk.country() 省
city = fk.province() 城市
city = fk.city() 邮编
post_code = fk.postcode() 邮箱 个人邮箱
email = fk.email() 公司邮箱
company_email = fk.company_email() 公司名称
company_name = fk.company() 工作岗位
job = fk.job() - 完整个人信息 生成复杂的人物信息 fk.profile(fields=None, sex=None) 生成简单的人物信息 fk.simple_profile(sex=None)
- 随机数
num = fk.random_int(min=1000,max=9999) - 文本类 随机字符串
str = fk.pystr() 随机生成词语
word = fk.word() 随机生成多个词语,返回 list
word_list = fk.words() 随机生成一句话
sentence = fk.sentence() 随机生成多句话,返回 list
sentence_list = fk.sentences() 随机生成多个段落,通过参数 nb 来控制段落数,返回 list
paragraphs_list = fk.paragraphs(nb=2) 随机生成一篇文章
text = fk.text() - 时间类
- 随机时间
- 格式:年-月-日 # 范围:从 1970 到当前时间
- date = fk.date()# 范围:当前年份
- date = fk.date_this_year()# 范围:当前月份
- date = fk.date_this_month()
- 格式:年-月-日 时:分:秒,范围:从 1970 到当前时间 # 范围:从 1970 到当前时间
- date_time = fk.date_time()
- 随机年/月
- 随机年
- year = fk.year()
- 随机月
- mouth = fk.mouth()
- 指定时间范围
- 格式:年-月-日
date = fk.date_between(start_date='-1y',end_date='today')
参数- start_date='-1y' -1y:一年前 -1m:一个月前
- end_date='today' today:今天 -1y:一年前 -1m:一个月前
- 注意点
- 参数串字符串
- 开始时间必须小于结束时间
- 格式:年-月-日 时:分:秒
date_time = fk.date_time_between(start_date='-3y',end_date='-2y')
参数- start_date='-1y' -1y:一年前 -1m:一个月前
- end_date='today' today:今天 -1y:一年前 -1m:一个月前
- 注意点
- 参数传字符串
- 开始时间必须小于结束时间
- 格式:年-月-日
- 未来时间
- 格式:年-月-日
future_data = fk.future_date() - 格式:年-月-日 时:分:秒
future_date_time = fk.future_datetime()
- 格式:年-月-日
- 时区
time_zone = fk.timezone() - 时间戳
unix_time = fk.unix_time()
- 随机时间
- 网络信息 用户名
user_name = fk.user_name() 密码
passwd = fk.password() - 浏览器信息(user_agent) fk.firefox():随机生成 Firefox 浏览器 user_agent 信息 fk.chrome():随机生成 Chrome 浏览器 user_agent 信息 fk.internet_explorer():随机生成 IE 浏览器 user_agent 信息 fk.opera():随机生成欧朋浏览器 user_agent 信息 fk.safari():随机生成 Safari 浏览器 user_agent 信息
- 手机信息 Android
android_info = fk.android_platform_token() iOS
ios_info = fk.ios_platform_token() - 操作系统 fk.windows_platform_token():windows 信息 fk.linux_platform_token():Linux 信息 fk.mac_platform_token():MacBook 信息
- 四要素 姓名
- 高级用法
- 确保随机数据唯一性 fk.unique.方法名()
[fk.unique.name() for i in range(10)] - 共享随机数
- Faker 类有一个类方法(seed),支持给生成器设置参数 Generator.seed(seed)
from faker import Faker
class Test:
def init(self):
self.fk = Faker(locale='zh-CN') - def test01(self):
Faker.seed(1111)
print(self.fk.name()) - def test02(self):
Faker.seed(1111)
print(self.fk.name())
- Faker 类有一个类方法(seed),支持给生成器设置参数 Generator.seed(seed)
- 确保随机数据唯一性 fk.unique.方法名()
就给大家介绍到这里了,感谢您的认真阅读,我也会写出更优质的文章的,敬请期待哦!
写在最后
最后再唠唠一句,如果想以测试为长期发展职业目标,是需要时刻保持学习的,要使自己具备竞争力,无论你现在工作几年,只要行动起来,你就已经占优势了,好啦就到这里了,祝大家2022年能升职加薪,没入职的就早日拿到心仪公司的offer,事事顺遂。