• python造数据神奇faker


      最近做接口测试,接口中有些参数是唯一的,测试用例不可重复运行。初期的构思是,传参数据中加入标记,连接数据库,写前置操作进行删除。这样每次执行用例都会删除上条用例新增的数据,实现用例的重复运行。但是被否决了,不能连接数据库。。。然后最近看到的Faker用到了。它会随机的生成身份证啊,手机号啊等等,帮了我大忙。相信你们也会用到,今天来分享啦。介绍一下Faker。

    安装Faker

    安装Faker非常简单,直接

    pip install Faker

    基本用法:

    from faker import Faker #导进来
    
    fake = Faker(locale='zh_CN') # 生成中文的随机数据,添加locale='zh_CN'
     
    fake.name()#随机生成中文名字
     

    如果要生成其他语种或地区的数据,我们可以传入相应的地区值:

    ar_EG - Arabic (Egypt)
    ar_PS - Arabic (Palestine)
    ar_SA - Arabic (Saudi Arabia)
    bg_BG - Bulgarian
    bs_BA - Bosnian
    cs_CZ - Czech
    de_DE - German
    dk_DK - Danish
    el_GR - Greek
    en_AU - English (Australia)
    en_CA - English (Canada)
    en_GB - English (Great Britain)
    en_NZ - English (New Zealand)
    en_US - English (United States)
    es_ES - Spanish (Spain)
    es_MX - Spanish (Mexico)
    et_EE - Estonian
    fa_IR - Persian (Iran)
    fi_FI - Finnish
    fr_FR - French
    hi_IN - Hindi
    hr_HR - Croatian
    hu_HU - Hungarian
    hy_AM - Armenian
    it_IT - Italian
    ja_JP - Japanese
    ka_GE - Georgian (Georgia)
    ko_KR - Korean
    lt_LT - Lithuanian
    lv_LV - Latvian
    ne_NP - Nepali
    nl_NL - Dutch (Netherlands)
    no_NO - Norwegian
    pl_PL - Polish
    pt_BR - Portuguese (Brazil)
    pt_PT - Portuguese (Portugal)
    ro_RO - Romanian
    ru_RU - Russian
    sl_SI - Slovene
    sv_SE - Swedish
    tr_TR - Turkish
    uk_UA - Ukrainian
    zh_CN - Chinese (China Mainland)
    zh_TW - Chinese (China Taiwan)

    常用方法:

    地理信息类:

    ity_suffix():市,县
    
    country():国家
    
    country_code():国家编码
    
    district():区
    
    geo_coordinate():地理坐标
    
    latitude():地理坐标(纬度)
    
    longitude():地理坐标(经度)
    
    postcode():邮编
    
    province():省份 (zh_TW没有此方法)
    
    address():详细地址
    
    street_address():街道地址
    
    street_name():街道名
    
    street_suffix():街、路

    基础信息类:

    ssn():生成身份证号
    
    bs():随机公司服务名
    
    company():随机公司名(长)
    
    company_prefix():随机公司名(短)
    
    company_suffix():公司性质
    
    credit_card_expire():随机信用卡到期日
    
    credit_card_full():生成完整信用卡信息
    
    credit_card_number():信用卡号
    
    credit_card_provider():信用卡类型
    
    credit_card_security_code():信用卡安全码
    
    job():随机职位
    
    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():随机生成手机号段

    计算机基础、Internet信息类:

    ascii_company_email():随机ASCII公司邮箱名
    ascii_email():随机ASCII邮箱:
    company_email():
    email():
    safe_email():安全邮箱

    网络基础信息类:

    domain_name():生成域名
    domain_word():域词(即,不包含后缀)
    ipv4():随机IP4地址
    ipv6():随机IP6地址
    mac_address():随机MAC地址
    tld():网址域名后缀(.com,.net.cn,等等,不包括.)
    uri():随机URI地址
    uri_extension():网址文件后缀
    uri_page():网址文件(不包含后缀)
    uri_path():网址文件路径(不包含文件名)
    url():随机URL地址
    user_name():随机用户名
    image_url():随机URL地址

    数字类:

    numerify():三位随机数字
    
    random_digit():0~9随机数
    
    random_digit_not_null():1~9的随机数
    
    random_int():随机数字,默认0~9999,可以通过设置min,max来设置
    
    random_number():随机数字,参数digits设置生成的数字位数
    
    pyfloat():left_digits=5 #生成的整数位数,
    
                      right_digits=2 #生成的小数位数,
    
                      positive=True #是否只有正数
    
    pyint():随机Int数字(参考random_int()参数)
    
    pydecimal():随机Decimal数字(参考pyfloat参数)

    文件信息类:

    file_extension():随机文件扩展名
    
    file_name():随机文件名(包含扩展名,不包含路径)
    
    file_path():随机文件路径(包含文件名,扩展名)
    
    mime_type():随机mime Type

    文本、加密类:

    pystr():随机字符串
    
    random_element():随机字母
    
    random_letter():随机字母
    
    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

    时间信息类:

    date():随机日期
    
    date_between():随机生成指定范围内日期,参数:start_date,end_date
    
    date_between_dates():随机生成指定范围内日期,用法同上
    
    date_object():随机生产从1970-1-1到指定日期的随机日期。
    
    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():随机年份

    总结:

    Faker成功的帮我解决了造数据的问题,提高了代码的复用性。Faker的用处还有很多,待我好好研究研究。

    我感觉目前faker提供的的数据够用了。(对于我自己项目哈)

     参考博客:https://www.cnblogs.com/jinjiangongzuoshi/p/13265032.html

          https://www.jianshu.com/p/6bd6869631d9

  • 相关阅读:
    练习选择菜单(optionmenu)、上下文菜单(Contextmenu)、弹出菜单(popupmenu)综合小demo
    Androidstudio中listView视图列表控件的使用小练习
    MintUI的MessageBox的用法
    Hbuilder打包app后相机拍摄失效问题的解决
    Vue自带Eslint规范经常报的错误信息
    Object.defineProperty属性实现双向绑定
    移动端开发注意事项
    浏览器兼容问题
    http请求详解
    web页面性能优化及seo
  • 原文地址:https://www.cnblogs.com/MrqiuS/p/13606966.html
Copyright © 2020-2023  润新知