qican

前言

无论是手工测试还是自动化测试,都会遇到测试数据,有时候创建测试数据时,不知道如何创建真实有效的数据,比如地址,身份证号码,姓名,邮箱等等,今天安静介绍一篇通过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的可以先将用到的随机数据进行封装起来,我们使用的时候进行调用就可以了。

 

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

分类:

技术点:

相关文章:

  • 2022-02-02
  • 2022-01-15
  • 2022-01-05
  • 2022-12-23
  • 2021-12-12
  • 2022-01-02
  • 2022-12-23
  • 2021-09-28
猜你喜欢
  • 2021-12-16
  • 2022-12-23
  • 2022-01-09
  • 2022-12-23
  • 2021-12-12
  • 2021-08-28
  • 2022-12-23
相关资源
相似解决方案