python---创建随机数据(Faker)

前言

无论是手工测试还是自动化测试,都会遇到测试数据,有时候创建测试数据时,不知道如何创建真实有效的数据,比如地址,身份证号码,姓名,邮箱等等,今天安静介绍一篇通过python来创建随机数据的一个库Faker。

Faker

faker这里不是李相赫,而是属于python的一个第三方库,主要用来创建伪数据,使用Faker可以生成随机数据,只需要调用Faker提供的方法,即可完成数据的生成。

安装: pip install Faker 

源码:https://github.com/joke2k/faker

使用方法

faker使用非常简单,只需要导入faker即刻。

from faker import Faker
fake = Faker(locale='zh_CN')    # 设置中文
# 随机名字
print(fake.name())
# 随机地址
print(fake.address())
# 随机身份证
print(fake.ssn(min_age=18, max_age=60)) # 不带参数默认随机生成,携带参数可以控制身份证年龄大小

通过执行发现,这里产生的名字,地址,身份证都是随机生成的。当我们在测试过程中不用在费脑筋来想这些了。

你以为Faker只是简单的这些吗?其实不是的,Faker库中有很多随机数据,比如城市名,电话,手机号,邮箱,职位,浏览器伪数据等等等,安静简单的列举下几个

from faker import Faker
fake = Faker(locale='zh_CN')    # 设置中文
# 随机名字
print('名字:'+fake.name())
# 随机地址
print('地址:'+fake.address())
# 随机身份证
print('身份证号码:'+fake.ssn(min_age=18, max_age=60)) # 不带参数默认随机生成,携带参数可以控制身份证年龄大小
# 随机产生工作岗位
print('工作岗位:'+fake.job())
# 随机生成浏览器头user_agent
print('浏览器请求头:'+fake.user_agent())
# 产生随机手机号
print('手机号:'+fake.phone_number())
# 随机产生城市名
print('城市名:'+fake.city_name())
# 产生随机email
print('邮箱:'+fake.email())

通过执行可以清楚的看到,每次生成的数据都是不同的,这样就解决了我们的随机测试数据

Faker支持的其他内容,小伙伴们可以去源码中进行查看。

案例

安静通过聚合数据上找到了一些免费接口,然后通过faker生成随机数据来测试这些接口。接口有身份证查询接口,以及天气预报接口,和手机号查询接口。这里通过requests的库来模拟接口请求。

from faker import Faker
fake = Faker(locale='zh_CN')    # 设置中文
import requests
print('-------------------------手机号查询----------------------------------------------')
# 产生随机手机号
phone = fake.phone_number()
print('手机号:'+phone)
# 请求参数
phone_data = {
    'phone': phone,
    'key':'7d2b9b14adfe392c88b9c431297be543'
}
# 查询手机号归属地接口地址
phone_url = 'http://apis.juhe.cn/mobile/get'
response_phone = requests.post(phone_url, data=phone_data)
print(response_phone.json())
print('-------------------------天气预报----------------------------------------------')
# 随机产生城市名
city = fake.city_name()
print('城市名:'+city)
weather_url = 'http://apis.juhe.cn/simpleWeather/query'
weather_data = {
    'city': city,
    'key': '331eab8f3481f37868378fcdc76cb7cd'
}
response_weather = requests.post(weather_url,data=weather_data)
print(response_weather.json())
print('-------------------------身份证查询接口----------------------------------------')
# 随机身份证
IDcard = fake.ssn(min_age=18, max_age=60)
print('身份证号码:'+IDcard)
IDcard_url = 'http://apis.juhe.cn/idcard/index'
IDcard_data = {
    'cardno': IDcard,
    'key': 'f40a75704fac353952a6534a18f9f437',
}
response_IDcard = requests.post(IDcard_url,data=IDcard_data)
print(response_IDcard.json())

通过执行后发现,数据每次都是不一样的。接口返回也都成功返回了

总结

安静对本篇文章做个简单的总结,介绍了如何使用faker的方法以及常用的faker生成的随机数据。通过三个小接口的例子介绍如何在接口中进行使用faker。这里的例子只是简单的书写,如果有用到faker的可以先将用到的随机数据进行封装起来,我们使用的时候进行调用就可以了。

 

如果感觉安静写的对您有所帮助,可以点个关注,持续更新中~也可以关注安静个人公众号:【跟着安静学测试】

posted @ 2021-04-23 16:46  测试-安静  阅读(1699)  评论(0编辑  收藏  举报