1. 程式人生 > 實用技巧 >python系列——利用Faker模組造測試資料

python系列——利用Faker模組造測試資料

參考:https://www.cnblogs.com/dream66/p/13233797.html

一、Faker模組是什麼?

  • 一個Python第三方模組,主要用來建立偽資料
  • 無需再手動生成或者手寫隨機數來生成資料,是否faker提供的方法,即可完成資料的生成

二、使用背景介紹

  • 在軟體測試過程中,我們經常需要使用一些測試資料,針對這種情況,我們一般要麼使用已有的系統資料,要麼需要手動製造一些資料。
  • 在手動製造資料的過程中,可能需要花費大量精力和工作量。現在有faker,就可以很方便的完成這些事情。

三、Faker模組應用

3.1 faker模組安裝

pip install faker

3.2 基礎使用

from faker import Faker

f=Faker(locale='zh_CN') # 為生成資料的文化選項,預設為en_US,只有使用了相關文化,才能生成相對應的隨機資訊

for i in range(10):
    print( f.name() + " : " + f.address() )  # 隨機生成中文姓名和地址

上述程式碼執行完畢後,大家會發現能隨機生成中文姓名和地址。及name()函式能生成姓名,address()函式能生成地址。

3.3 常用函式介紹

city_suffix():市,縣

country():國家

country_code():國家編碼

district():區

geo_coordinate():地理座標

latitude():地理座標(緯度)

longitude():地理座標(經度)

lexify():替換所有問號(“?”)帶有隨機字母的事件。

numerify():三位隨機數字

postcode():郵編

province():省份

street_address():街道地址

street_name():街道名

street_suffix():街、路

random_digit():0~9隨機數

random_digit_not_null():1~9的隨機數

random_element():隨機字母

random_int():隨機數字,預設0~9999,可以通過設定min,max來設定

random_letter():隨機字母

random_number():隨機數字,引數digits設定生成的數字位數

color_name():隨機顏色名

hex_color():隨機HEX顏色

rgb_color():隨機RGB顏色

safe_color_name():隨機安全色名

safe_hex_color():隨機安全HEX顏色

bs():隨機公司服務名

company():隨機公司名(長)

company_prefix():隨機公司名(短)

company_suffix():公司性質

credit_card_expire():隨機信用卡到期日

credit_card_full():生成完整信用卡資訊

credit_card_number():信用卡號

credit_card_provider():信用卡型別

credit_card_security_code():信用卡安全碼

currency_code():貨幣編碼

am_pm():AM/PM

century():隨機世紀

date():隨機日期

date_between():隨機生成指定範圍內日期,引數:start_date,end_date取值:具體日期或者today,-30d,-30y類似

date_between_dates():隨機生成指定範圍內日期,用法同上

date_object():隨機生產從1970-1-1到指定日期的隨機日期。

date_this_month():

date_this_year():

date_time():隨機生成指定時間(1970年1月1日至今)

date_time_ad():生成公元1年到現在的隨機時間

date_time_between():用法同dates

future_date():未來日期

future_datetime():未來時間

month():隨機月份

month_name():隨機月份(英文)

past_date():隨機生成已經過去的日期

past_datetime():隨機生成已經過去的時間

time():隨機24小時時間

timedelta():隨機獲取時間差

time_object():隨機24小時時間,time物件

time_series():隨機TimeSeries物件

timezone():隨機時區

unix_time():隨機Unix時間

year():隨機年份

file_extension():隨機副檔名

file_name():隨機檔名(包含副檔名,不包含路徑)

file_path():隨機檔案路徑(包含檔名,副檔名)

mime_type():隨機mime Type

ascii_company_email():隨機ASCII公司郵箱名

ascii_email():隨機ASCII郵箱

ascii_free_email():

ascii_safe_email():

company_email():

domain_name():生成域名

domain_word():域詞(即,不包含字尾)

email():

free_email():

free_email_domain():

f.safe_email():安全郵箱

f.image_url():隨機URL地址

ipv4():隨機IP4地址

ipv6():隨機IP6地址

mac_address():隨機MAC地址

tld():網址域名字尾(.com,.net.cn,等等,不包括.)

uri():隨機URI地址

uri_extension():網址檔案字尾

uri_page():網址檔案(不包含字尾)

uri_path():網址檔案路徑(不包含檔名)

url():隨機URL地址

user_name():隨機使用者名稱

isbn10():隨機ISBN(10位)

isbn13():隨機ISBN(13位)

job():隨機職位

paragraph():隨機生成一個段落

paragraphs():隨機生成多個段落,通過引數nb來控制段落數,返回陣列

sentence():隨機生成一句話

sentences():隨機生成多句話,與段落類似

text():隨機生成一篇文章(不要幻想著人工智慧了,至今沒完全看懂一句話是什麼意思)

word():隨機生成詞語

words():隨機生成多個詞語,用法與段落,句子,類似

binary():隨機生成二進位制編碼

boolean():True/False

language_code():隨機生成兩位語言編碼

locale():隨機生成語言/國際 資訊

md5():隨機生成MD5

null_boolean():NULL/True/False

password():隨機生成密碼,可選引數:length:密碼長度;special_chars:是否能使用特殊字元;digits:是否包含數字;upper_case:是否包含大寫字母;lower_case:是否包含小寫字母

sha1():隨機SHA1

sha256():隨機SHA256

uuid4():隨機UUID

first_name():

first_name_female():女性名

first_name_male():男性名

first_romanized_name():羅馬名

last_name():

last_name_female():女姓

last_name_male():男姓

last_romanized_name():

name():隨機生成全名

name_female():男性全名

name_male():女性全名

romanized_name():羅馬名

msisdn():移動臺國際使用者識別碼,即移動使用者的ISDN號碼

phone_number():隨機生成手機號

phonenumber_prefix():隨機生成手機號段

profile():隨機生成檔案資訊

simple_profile():隨機生成簡單檔案資訊

3.4 隨機生成指定型別資料

pybool():布林型別

pydecimal():數字

pydict():字典

pyfloat():left_digits=5 #生成的整數位數, right_digits=2 #生成的小數位數, positive=True #是否只有正數

pyint():整型

pyiterable():迭代器

pylist():列表

pyset():集合

pystr():字串

pystruct():結構體

pytuple():元組

3.5 隨機生成常用資料

ssn():生成身份證號

chrome():隨機生成Chrome的瀏覽器user_agent資訊

firefox():隨機生成FireFox的瀏覽器user_agent資訊

internet_explorer():隨機生成IE的瀏覽器user_agent資訊

opera():隨機生成Opera的瀏覽器user_agent資訊

safari():隨機生成Safari的瀏覽器user_agent資訊

linux_platform_token():隨機Linux資訊

user_agent():隨機user_agent資訊