python随机数据库_Python Faker随机生成测试数据(干货)

前言

Faker是一个Python软件包,可为您生成伪造数据。无论您是需要引导数据库,创建美观的XML文档,填充持久性以进行压力测试还是匿名化来自生产服务的数据,Faker都是您的理想之选。不论您这边需要创建多少条数据,无非是一个for循环就解决问题了。

基本用法

用pip安装:

pip install Faker

官方文档:Welcome to Faker’s documentation!​faker.readthedocs.io

github地址:

点❥(^_-)的人还真不少哦,值得学习呀!joke2k/faker​github.com

api介绍

我们可以用dir(fake)查看一下,它能fake近300种东西出来,并且faker还支持上几十种语言简直不能太强大。

dir(fake)

我们常用语种

常用的方法分类address 地址

person 人物类:性别、姓名等

barcode 条码类

color 颜色类

company 公司类:公司名、公司email、公司名前缀等

credit_card 银行卡类:卡号、有效期、类型等

currency 货币

date_time 时间日期类:日期、年、月等

file 文件类:文件名、文件类型、文件扩展名等

internet 互联网类

job 工作

lorem 乱数假文

misc 杂项类

phone_number 手机号码类:手机号、运营商号段

python python数据

profile 人物描述信息:姓名、性别、地址、公司等

ssn 社会安全码(身份证号码)

user_agent 用户代理

fake.country() # 国家

fake.city() # 城市

fake.city_suffix() # 城市的后缀,中文是:市或县'市'

fake.name() # 姓名

fake.last_name() # 姓

fake.ean8() # 8位条码

fake.ean13() # 13位条码

faker函数太多了,我就不依依介绍了,有兴趣的看下看

简单的实例

没错短短三行代码就实现随机创建数据

from faker import Faker

fake = Faker('zh_CN') //设置语种

fake.name()

批量创建数据

小编这里写了4个场景来批处理数据并且保存100条数据写入txt

100条数据如excel

100条数据写入mongodb数据库

100条数据写入mysql数据库

话不多少,这接撸代码。

执行下面代码生成txt、excel、mongodb、mysql数据

"""* Create by dell on 2020/6/11* Author :wencheng* 微信公众 :自动化测试 To share"""

from faker import Faker

import pandas as pd

from urllib import parse

from pymongo import MongoClient

import pymysql

class Create_Data(object):

def __init__(self):

# 选择中文

fake = Faker('zh_CN')

# 生成数据改变循环体来控制数据量rang(?)

self.data_total = [

[fake.name(), fake.job(), fake.company(), fake.phone_number(), fake.company_email(), fake.address(),

fake.date_time(tzinfo=None)] for x in range(100)]

print(self.data_total)

# 写入excel

def deal_excel(self):

df = pd.DataFrame(self.data_total,

columns=['name', 'job', 'company', 'phone_number', 'company_email', 'address', 'date_time'])

# 保存到本地excel

df.to_excel("data_total.xlsx", index=False)

print("Processing completed to excel")

# 写入txt

def deal_txt(self):

with open('data_total.txt', 'w', errors='ignore', encoding='utf-8') as output:

output.write('name,job,company,phone_number.company_email.address.date_time\n')

for row in self.data_total:

rowtxt = '{},{},{},{}'.format(row[0], row[1], row[2], row[3])

output.write(rowtxt)

output.write('\n')

output.close()

print("Processing completed to txt")

# 写入mongodb

def deal_mongodb(self):

port = 27017

host = 'localhost'

user_name = 'root'

db_name = 'data'

passwd = 'root'

passwd = parse.quote(passwd)

mango_uri = 'mongodb://%s:%s@%s:%s/%s' % (user_name, passwd, host, port, db_name) # 链接时需要指定数据库

conn = MongoClient(mango_uri) # 创建链接

db = conn[db_name] # 连接coder数据库

mongodata = db['data_total']

for val in self.data_total:

mongodata.insert(

{"name": val[0], 'job': val[1], 'company': val[2], 'phone_number': val[3], "company_email": val[4],

'address': val[5], 'date_time': val[6]})

print("Processing completed to mongodb")

# 写入mysql

def deal_mysql(self):

# 打开数据库连接

db = pymysql.connect("localhost", "root", "root", "test2")

# 使用cursor()方法获取操作游标

cursor = db.cursor()

# SQL 插入语句

for val in self.data_total:

sql = "insert into data_total(name,job,company,phone_number,company_email,address,date_time)value ('%s','%s','%s','%s','%s','%s','%s')" % (

val[0], val[1], val[2], val[3], val[4], val[5], val[6])

try:

# 执行sql语句

cursor.execute(sql)

# 执行sql语句

db.commit()

print("insert ok")

except:

# 发生错误时回滚

db.rollback()

# 关闭数据库连接

if __name__ == '__main__':

data = Create_Data()

data.deal_excel()

data.deal_txt()

data.deal_mongodb()

data.deal_mysql()

生成100条数据写入txt

生成100条数据写入excel

生成100条数据写入mongodb数据库

生成100条数据写入mysql数据库

就这么简单的几十行代码,可以随机生成我们需要的测试数据。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。

更多文章关注小编公众号:自动化测试 To share

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值