python--利用Faker模組造測試資料(轉載)
前言
勤奮是學習的枝葉,當然很苦,智慧是學習的花朵,當然香郁。
一、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資訊
四、小結
- 好用的faker模組就介紹到這裡;
- 由於文化差異,設定文化的時候會導致有些欄位比如省份等會出現方法報錯等問題,建議讀者使用的時候知道對方國家的基本文化資訊
- 生成的資料可以在通過xlwt等模組匯入到excel等,讀者可以自行發揮。
轉載於:https://www.cnblogs.com/dream66/
追趕曾經蹉跎的歲月