大家好,我是阿薩。 日常測試過程中經(jīng)常需要用到各種類型的數(shù)據(jù),而且數(shù)據(jù)量都不小。很多時候都需要大量數(shù)據(jù),自己用excel 造幾行數(shù)據(jù)可以,如果要造上完行數(shù)據(jù),還是需要寫代碼生成測試數(shù)據(jù)比較好。但是又不想隨機的造一些數(shù)據(jù),還希望符合常見的數(shù)據(jù)格式,比如地址,電話號碼,人名字等等。 那怎么辦呢??
這里給大家隆重介紹下 python 的Faker 庫,專門用來造偽數(shù)據(jù)的。下面地址有相關(guān)faker 庫的詳細(xì)數(shù)據(jù)和demo介紹。
https://faker.readthedocs.io/en/master/providers/faker.providers.address.html
Faker 可以造哪些類型的數(shù)據(jù)呢?
address?可以造所有和地址相關(guān)的數(shù)據(jù),比如詳細(xì)地址,國家,國家編碼,當(dāng)前國家, 大樓號碼,城市,城市后綴,當(dāng)前國家編碼,郵政編碼,街道地址,街道名稱,街道后綴等刷數(shù)據(jù)。
automotive?可以造汽車供應(yīng)商的數(shù)據(jù),比如汽車牌照。
bank?可以造銀行相關(guān)的數(shù)據(jù),比如銀行國家,ABA,BBAN,IBAN,SWIFT,11位的SWIFT代碼,8位的SWIFT 代碼等數(shù)據(jù)。
barcode?二維碼生成器,生成二維碼相關(guān)數(shù)據(jù),可以生成8位或者13位的EAN 二維碼。
color?顏色生成器,可以生成顏色的名稱或者RGB值或者16進制三元組格式的顏色,或者CSS RGB 值,網(wǎng)絡(luò)安全的顏色值。
company?生成公司名稱相關(guān)數(shù)據(jù)。
credit_card?生成信用卡相關(guān)數(shù)據(jù),有信用卡過期時間,信用卡詳情,卡號,信用卡供應(yīng)商,信用卡安全編碼。
currency?生成貨幣相關(guān)數(shù)據(jù),有貨幣符號,帶貨幣符號的金錢數(shù)字,貨幣名稱,貨幣代碼等。
date_time生成日期相關(guān)數(shù)據(jù),包括上午或者下午,世紀(jì),日期,生日,當(dāng)前世紀(jì),當(dāng)年,當(dāng)月,某一個時間范圍內(nèi)的日期或者時間,未來時間,過去時間,年, 月,日,時區(qū)等等。
file?生成文件相關(guān)數(shù)據(jù),包括文件后綴,文件名稱,文件路徑, MIME 類型,UNIX格式的文件名稱。
geo?生成地理相關(guān)的數(shù)據(jù),比如經(jīng)度,維度,坐標(biāo)等等數(shù)據(jù)。
internet?生成網(wǎng)絡(luò)相關(guān)數(shù)據(jù),比如 郵箱,網(wǎng)絡(luò)安全郵箱,免費郵箱,公司郵箱,指定日期里的域名,域名,主機名,HTTP 方法,IANA注冊ID,圖片地址,IPV4,IPV6, mac地址等。
isbn?生成國際標(biāo)準(zhǔn)圖書編碼。
job?生成崗位名稱。
lorem?可以生成文章,語句,文本,單詞等
misc?可以生成二進制 ,布爾值,csv,dsv,固定寬度,圖片,json,MD5,帶空值的布爾值,密碼,psv,SHA1的哈希值,SHA256的哈希值,tar,tsv,UUID4,zip等數(shù)據(jù),這個庫很強大,只用這一個庫,就可以解決很多問題了。
person?生成和人相關(guān)數(shù)據(jù),比如名,姓,性別,稱呼,后綴等等數(shù)據(jù)。
phone_number?生成和電話號碼相關(guān)數(shù)據(jù),比如國家前綴,MSISDN,電話號碼。
profile?生成個人相關(guān)信息的集合。比如工作,公司,姓名,性別等數(shù)據(jù)集合,不是單個數(shù)據(jù)。
python?生成python 里的布爾值,小數(shù),字典,浮點數(shù),整形和迭代數(shù)據(jù),列表,字符串,結(jié)構(gòu)體,元祖等數(shù)據(jù)。
ssn?生成SSN
user_agent?生成用戶代理相關(guān)數(shù)據(jù)。比如 chrome , firefox, IE, IOS 平臺, linux 平臺的,mac 平臺的user agent 數(shù)據(jù)。
看完上面的簡介,你是不是說,那怎么使用呢?
很簡單。
比如生成電話號碼的代碼:
Faker.seed(0)
for _ in range(5):
? ? ?fake.phone_number()
執(zhí)行代碼結(jié)果如下:
'(604)876-4759x3824'
'(194)8924115'
'815.659.3877x8408'
'1609753513'
'001-332-871-1587'
是不是很簡單,快學(xué)習(xí)起來吧。