在測(cè)試過程中,有時(shí)候需要造一些測(cè)試數(shù)據(jù)劲件,制造數(shù)據(jù)要耗費(fèi)掉大量的精力未巫,使用python的一個(gè)庫能方便快捷的完成。
以最簡(jiǎn)單的造姓名和電話號(hào)碼舉例蔗草,如果我們自己寫造測(cè)試數(shù)據(jù)的方法咒彤,大約需要10行的代碼。
import random
def phone():
third = second = [3, 4, 5, 6, 7, 8][random.randint(0, 5)]
suffix = random.randint(10000000, 99999999)
return "1{}{}{}".format(second, third, suffix)
def name():
first = ['張', '金', '李', '王', '趙', '錢', '孫', '楊', '孫', '喬']
second = ['玉', '明', '龍', '芳', '軍', '玲']
third = ['', '立', '玲', '高', '國(guó)', '藍(lán)', '軍', '玲']
return random.choice(first) + random.choice(second) + random.choice(third)
print(phone())
print(name())
使用faker庫只需要兩行代碼咒精。
name = fake.name()
phone = fake.phone_number()
一镶柱、Faker庫介紹
Faker是一個(gè)Python包,開源的github項(xiàng)目模叙,地址:<u style="text-decoration: none; border-bottom: 1px dashed rgb(128, 128, 128);">https://github.com/joke2k/faker</u>
主要用來創(chuàng)建偽數(shù)據(jù)歇拆,使用Faker包,無需再手動(dòng)生成或者手寫隨機(jī)數(shù)來生成數(shù)據(jù)范咨,只需要調(diào)用Faker提供的方法故觅,即可完成數(shù)據(jù)的生成。
安裝:
pip install Faker
導(dǎo)入包:
from faker import Faker
實(shí)例化:
fake = Faker(locale='zh_CN')
初始化參數(shù)locale:為生成數(shù)據(jù)的文化選項(xiàng)渠啊,默認(rèn)為en_US输吏,只有使用了相關(guān)文化,才能生成相對(duì)應(yīng)的隨機(jī)信息(比如:名字昭抒,地址评也,郵編,城市灭返,省份等)盗迟,如使用zh_CN代表中國(guó),生成的信息就是中國(guó)文化的姓名熙含、地址等罚缕。如使用en_US代表美國(guó),生成的信息就是英文名怎静、美國(guó)文化的街道邮弹、地址等。
支持非常多的國(guó)家和地區(qū)文化:
en_US- English (United States)
zh_CN- Chinese (China)
de_DE- German
fake = Faker(locale='zh_CN') # 中文
name = fake.name()
address = fake.address()
print("中國(guó):"+name+"|"+address)
fake = Faker(locale='en_US') # 英文
name = fake.name()
address = fake.address()
print("美國(guó):"+name+"|"+address)
fake = Faker(locale='de_DE') # 德文
name = fake.name()
address = fake.address()
print("德國(guó):"+name+"|"+address)
二蚓聘、常用的方法
地理信息類:
city_suffix():市腌乡,縣
country():國(guó)家
country_code():國(guó)家編碼
district():區(qū)
geo_coordinate():地理坐標(biāo)
province():省份
基礎(chǔ)信息類:
ssn():生成身份證號(hào)
company():隨機(jī)公司名
credit_card_number():信用卡號(hào)
job():隨機(jī)職位
name():隨機(jī)生成全名
phone_number():隨機(jī)生成手機(jī)號(hào)
email():隨機(jī)郵箱
網(wǎng)絡(luò)基礎(chǔ)信息類:
ipv4():隨機(jī)IP4地址
ipv6():隨機(jī)IP6地址
domain_name():生成域名
mac_address():隨機(jī)MAC地址
url():隨機(jī)URL地址
瀏覽器信息類:
chrome():隨機(jī)生成Chrome的瀏覽器user_agent信息
firefox():隨機(jī)生成FireFox的瀏覽器user_agent信息
internet_explorer():隨機(jī)生成IE的瀏覽器user_agent信息
opera():隨機(jī)生成Opera的瀏覽器user_agent信息
safari():隨機(jī)生成Safari的瀏覽器user_agent信息
文本、加密類
text():隨機(jī)生成文本(有可能不是一句正常的話夜牡,僅文本)
word():隨機(jī)生成詞語
words():隨機(jī)生成多個(gè)詞語
md5():隨機(jī)生成MD5
sha1():隨機(jī)SHA1
sha256():隨機(jī)SHA256
時(shí)間信息類:
date():隨機(jī)日期
date_between():隨機(jī)生成指定范圍內(nèi)日期与纽,參數(shù):start_date,end_date
future_date():未來日期
future_datetime():未來時(shí)間
timezone():隨機(jī)時(shí)區(qū)
year():隨機(jī)年份
from faker import Faker
fake = Faker(locale='zh_CN')
province = fake.province()
city= fake.city()
ssn = fake.ssn()
company=fake.company()
job = fake.job()
name =fake.name()
ipv4 = fake.ipv4()
print(province,city,ssn,company,job,name,ipv4)