zoukankan      html  css  js  c++  java
  • python---创建随机数据(Faker)

    前言

    无论是手工测试还是自动化测试,都会遇到测试数据,有时候创建测试数据时,不知道如何创建真实有效的数据,比如地址,身份证号码,姓名,邮箱等等,今天安静介绍一篇通过python来创建随机数据的一个库Faker。

    Faker

    faker这里不是李相赫,而是属于python的一个第三方库,主要用来创建伪数据,使用Faker可以生成随机数据,只需要调用Faker提供的方法,即可完成数据的生成。

    安装: pip install Faker 

    源码:https://github.com/joke2k/faker

    使用方法

    faker使用非常简单,只需要导入faker即刻。

    from faker import Faker
    fake = Faker(locale='zh_CN')    # 设置中文
    # 随机名字
    print(fake.name())
    # 随机地址
    print(fake.address())
    # 随机身份证
    print(fake.ssn(min_age=18, max_age=60)) # 不带参数默认随机生成,携带参数可以控制身份证年龄大小

    通过执行发现,这里产生的名字,地址,身份证都是随机生成的。当我们在测试过程中不用在费脑筋来想这些了。

    你以为Faker只是简单的这些吗?其实不是的,Faker库中有很多随机数据,比如城市名,电话,手机号,邮箱,职位,浏览器伪数据等等等,安静简单的列举下几个

    from faker import Faker
    fake = Faker(locale='zh_CN')    # 设置中文
    # 随机名字
    print('名字:'+fake.name())
    # 随机地址
    print('地址:'+fake.address())
    # 随机身份证
    print('身份证号码:'+fake.ssn(min_age=18, max_age=60)) # 不带参数默认随机生成,携带参数可以控制身份证年龄大小
    # 随机产生工作岗位
    print('工作岗位:'+fake.job())
    # 随机生成浏览器头user_agent
    print('浏览器请求头:'+fake.user_agent())
    # 产生随机手机号
    print('手机号:'+fake.phone_number())
    # 随机产生城市名
    print('城市名:'+fake.city_name())
    # 产生随机email
    print('邮箱:'+fake.email())

    通过执行可以清楚的看到,每次生成的数据都是不同的,这样就解决了我们的随机测试数据

    Faker支持的其他内容,小伙伴们可以去源码中进行查看。

    案例

    安静通过聚合数据上找到了一些免费接口,然后通过faker生成随机数据来测试这些接口。接口有身份证查询接口,以及天气预报接口,和手机号查询接口。这里通过requests的库来模拟接口请求。

    from faker import Faker
    fake = Faker(locale='zh_CN')    # 设置中文
    import requests
    print('-------------------------手机号查询----------------------------------------------')
    # 产生随机手机号
    phone = fake.phone_number()
    print('手机号:'+phone)
    # 请求参数
    phone_data = {
        'phone': phone,
        'key':'7d2b9b14adfe392c88b9c431297be543'
    }
    # 查询手机号归属地接口地址
    phone_url = 'http://apis.juhe.cn/mobile/get'
    response_phone = requests.post(phone_url, data=phone_data)
    print(response_phone.json())
    print('-------------------------天气预报----------------------------------------------')
    # 随机产生城市名
    city = fake.city_name()
    print('城市名:'+city)
    weather_url = 'http://apis.juhe.cn/simpleWeather/query'
    weather_data = {
        'city': city,
        'key': '331eab8f3481f37868378fcdc76cb7cd'
    }
    response_weather = requests.post(weather_url,data=weather_data)
    print(response_weather.json())
    print('-------------------------身份证查询接口----------------------------------------')
    # 随机身份证
    IDcard = fake.ssn(min_age=18, max_age=60)
    print('身份证号码:'+IDcard)
    IDcard_url = 'http://apis.juhe.cn/idcard/index'
    IDcard_data = {
        'cardno': IDcard,
        'key': 'f40a75704fac353952a6534a18f9f437',
    }
    response_IDcard = requests.post(IDcard_url,data=IDcard_data)
    print(response_IDcard.json())

    通过执行后发现,数据每次都是不一样的。接口返回也都成功返回了

    总结

    安静对本篇文章做个简单的总结,介绍了如何使用faker的方法以及常用的faker生成的随机数据。通过三个小接口的例子介绍如何在接口中进行使用faker。这里的例子只是简单的书写,如果有用到faker的可以先将用到的随机数据进行封装起来,我们使用的时候进行调用就可以了。

     

     

    如果感觉安静写的对您有所帮助,可以点个关注,持续更新中~也可以关注安静个人公众号:【跟着安静学测试】

  • 相关阅读:
    Discuz 模板语句分析及知识技巧
    phpcms v9添加新模块
    simplexml 对xml的增删改操纵
    phpcms V9 相关阅读/相关文章
    怎么让php生成的网页源代码开头不出现空行
    phpcms v9 如何实现标签的嵌套
    在{pc:content action="lists"标签中加自定义限制条件的办法
    phpcms v9 内容页浏览数不显示问题
    【今日CV 视觉论文速览】29 Nov 2018
    【词云】wordcloud安装与使用
  • 原文地址:https://www.cnblogs.com/qican/p/14693867.html
Copyright © 2011-2022 走看看