Python - faker(上)

简介: Python - faker(上)

安装 faker


pip install Faker

pip install Dumper

 

设置生成器


from faker import Faker

fake = Faker()

它可以通过访问以想要的数据类型命名的属性来生成数据

 

简单的栗子

生成英文名字、英文地址、长文本

from faker import Faker
fake = Faker()
fake.name()
# 'Lucy Cechtelar'
fake.address()
# '426 Jordy Lodge
#  Cartwrightshire, SC 88120-6700'
fake.text()
# 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi
#  beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt
#  amet quidem. Iusto deleniti cum autem ad quia aperiam.
#  A consectetur quos aliquam. In iste aliquid et aut similique suscipit. Consequatur qui
#  quaerat iste minus hic expedita. Consequuntur error magni et laboriosam. Aut aspernatur
#  voluptatem sit aliquam. Dolores voluptatum est.
#  Aut molestias et maxime. Fugit autem facilis quos vero. Eius quibusdam possimus est.
#  Ea quaerat et quisquam. Deleniti sunt quam. Adipisci consequatur id in occaecati.
#  Et sint et. Ut ducimus quod nemo ab voluptatum.'


faker 是以 en_US 为默认语言的,如果想要生成中文数据呢?

 

设置中文语言


from faker import Faker
fake = Faker("zh_CN")
fake.name()
# 吴帅
fake.address()
# 上海市霞市黄浦魏路R座 196165


繁体字

fake = Faker("zh_TW")

 

同时设置多种语言


想同时生成英文、中文的数据呢

from faker import Faker
fake = Faker(["en_US", "zh_CN"])
print(fake.name())
print(fake.name())
print(fake.name())
print(fake.name())
print(fake.address())
print(fake.address())
print(fake.address())
print(fake.address())
# 输出结果
温红梅
吴帅
Kathy Howard
John Parker
0236 Harmon Tunnel Apt. 878
South Lisa, AL 91400
10434 Christina Manor
Veronicachester, ND 40559
上海市霞市黄浦魏路R座 196165
澳门特别行政区红市翔安哈尔滨街j座 663953


Providers


  • 每个生成器属性(如 name、address、city)都被称为 fake
  • faker generator 有很多,打包在 providers 中
  • 所以 providers 有很多种,像 name、address 就所属于不同的 providers

 

使用不同 providers 的简单栗子

from faker import Faker
from faker.providers import internet
fake = Faker()
fake.add_provider(internet)
print(fake.ipv4_private())
# 输出结果
172.26.147.128


但其实不手动 add_provider 也可以的

from faker import Faker
fake = Faker()
print(fake.ipv4_private())
# 输出结果
172.30.247.147


注意


后面的栗子主要以中文为主

 

faker.providers.address


# 地址:'甘肃省澳门县崇文黄街s座 319489'
fake.address()
# 行政单位:'云南省'、'香港特别行政区'
fake.administrative_unit()
# 楼号:'W座'、'c座'
fake.building_number()
# 城市:'红霞市'、'成市'
fake.city()
# 城市名:'六安'、'宁德'
fake.city_name()
# 城市后缀:'市'、'县'
fake.city_suffix()
# 国家:'赞比亚'、'瑞士'
fake.country()
# 国家代号:'NL'、'IL'
fake.country_code()
# 当前国家代号:'CN'
fake.current_country_code()
# 当前国家:"People's Republic of China"
fake.current_country()
# 区:'高明'、'大兴'
fake.district()
# 邮政编码:'760487'、'211578'
fake.postcode()
# 省份:'云南省'、'甘肃省'
fake.province()
# 街道地址:'黄街s座'、'香港街g座'
fake.street_address()
# 街道名:'廖路'、'澳门路'
fake.street_name()
# 街道后缀:'街'、'路'
fake.street_suffix()


faker.providers.company


# 'iterate integrated e-markets'
fake.bs()
# 口号:'Networked well-modulated instruction set'
fake.catch_phrase()
# 公司:'万迅电脑科技有限公司'、'太极传媒有限公司'
fake.company()
# 公司前缀:'新宇龙信息'、'万迅电脑'
fake.company_prefix()
# 公司后缀:'传媒有限公司'、'科技有限公司'
fake.company_suffix()


faker.providers.internet


# ascii 格式公司邮箱:'cshao@wei.cn'、'yilei@yanyao.com'
fake.ascii_company_email()
# ascii 格式邮箱:'eliu@yahoo.com'、'ligao@guiyingxiuying.cn'
fake.ascii_email()
# ascii 格式免费邮箱:'cshao@yahoo.com'、'yqiu@yahoo.com'
fake.ascii_free_email()
# ascill 格式安全邮箱:'yqiu@example.com'、'lmo@example.org'
fake.ascii_safe_email()
# 公司邮箱:'cshao@wei.cn'、'tao59@gi.cn'
fake.company_email()
# 生成可指定子域级别数的 internet 域名
# domain_name()  =》nichols-phillips.com
# domain_name(2) =》williamson-hopkins.jackson.com
fake.domain_name()
# 域名单个单词:'qiu'、'litao'
fake.domain_word()
# 邮箱:'cshao@example.com'、'yqiu@example.com'
fake.email()
# 免费邮箱:'cshao@yahoo.com'、'yqiu@yahoo.com'
fake.free_email()
# 邮箱域:'yahoo.com'、'gmail.com'
fake.free_email_domain()
# 生成可指定子域级别数的 host
# hostname() =》 db-01.nichols-phillips.com
# hostname(0) =》 laptop-56
fake.hostname()
# 请求方法:'GET'、'DELETE'
fake.http_method()
# 图片 url:'https://www.lorempixel.com/788/861'、'https://placeimg.com/530/995/any'
fake.image_url()
# ipv4:'171.174.170.81'、'95.25.112.121'
fake.ipv4()
# ipv6:'f728:b4fa:4248:5e3a:a5d:2f35:6baa:9455'
fake.ipv6()
# MAC地址:'c5:d7:14:84:f8:cf'、'9b:f4:b7:6f:47:90'
fake.mac_address()
# 端口号:55125、5306
fake.port_number()
# 'https://www.wei.cn/explore/category/main/'、'http://wg.cn/explore/categories/terms.html'、'http://www.yongmin.cn/home.php'
fake.uri()
# uri 扩展:'.php'、'.html'
fake.uri_extension()
# path:'explore/tag'、'explore/category'
fake.uri_path()
# url:'https://48.cn/'、'https://xiulan.net/'
fake.url()
# 'cshao'、'wei76'
fake.user_name()


faker.providers.job


# 职业:'列车/地铁车长'、'纸样师/车板工'

fake.job()

 

相关文章
|
4天前
|
数据采集 存储 测试技术
Python生成随机数插件Faker的用法
Python生成随机数插件Faker的用法
44 0
|
6月前
|
测试技术 数据库 Python
软件测试|Python Faker库使用指南
软件测试|Python Faker库使用指南
73 0
|
Python
Python:faker生成测试数据
Python:faker生成测试数据
|
Python
Python - faker(下)
Python - faker(下)
96 0
|
数据采集 XML 测试技术
Faker 一个生成虚拟数据的Python模块
不会爬虫,没有数据怎么来练习,上次行哥给大家分享过数据集网站,有兴趣的可以看一下
391 0
Faker 一个生成虚拟数据的Python模块
|
JSON 测试技术 数据格式
python自动化测试:通过faker生成测试数据,通过schema检查返回结果
假定有如主图相同的http请求。我们一般的做法是,用postman去抓取http请求,然后修改request的body或者header里的数据,点击send按钮,检查返回的response的body是否正确。 对于输入。一般来说,我们会纯手工,或者半自动的,设计测试用例。例如使用边界值分析,等价类划分等方法,用在我们的输入参数中。比如我参数中的configname最多200个参数,我测试输入201个参数。 对于输出。一般来说,我们大部分时候是肉眼检查,或者写代码,通过jsonpath取参数,然后判断是否存在来检查。 这里我打算用一个新的方法来降低测试的手工特性,让他更自动化一点
815 0
python自动化测试:通过faker生成测试数据,通过schema检查返回结果
|
Python
Python:faker生成测试数据
Python:faker生成测试数据
121 0
|
2天前
|
Python
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
|
4天前
|
网络协议 Unix Python
Python编程-----网络通信
Python编程-----网络通信
8 1