• 4
  • 2
分享
  • 【Python脚本】批量造数据同时插入Mysql数据库
  • 瑾沐沐 2022-06-02 12:26:34 字数 2430 阅读 3831 收藏 2

     前两篇文章中沐沐为大家介绍了用faker库批量生成企业信息、用户信息的方法;批量生成1w条数据到Excel表格,如果需要录入系统的话,又需要通过界面导入、JMeter的csv参数化导入、数据库导入等方式,会较为繁琐。如果大家熟悉数据库表结构的话,就可以使用pyhon脚本直接将批量造好的数据导入数据库。必须要强调的是,python操作数据库之前,提前先备份好对应的表,以免操作失误后还可以还原数据。

     以下代码为批量生成企业数据后直接插入mysql数据库的举例:

# 批量造数据导入mysql
from faker import Faker
import pymysql
from faker.providers import BaseProvider
import random
import shortuuid
import time

# 创建自定义Provider
class CustomizeProvider(BaseProvider):
    def risk_type(self):
        risk_type_list= ['P0', 'P1', 'P2', 'P3']
        risk_type=random.choice(risk_type_list)
        return risk_type

    def risk_description(self):
        risk_des_list= ['暂无风险', '高风险', '中高风险', '中风险','低风险']
        risk_des=random.choice(risk_des_list)
        return risk_des

# 添加Provider
faker = Faker('zh_CN')
faker.add_provider(CustomizeProvider)

#数据库连接
try:
    db= pymysql.connect(host="192.168.**.**", port=3306, user="****", password="***",db="库名",charset="utf8")  
     #填写需要链接的数据库服务器地址、端口号、登录名、密码、库名等信息
    print("数据库连接成功")
except:
    print("数据库连接失败")


def create_company_data(number):
    # 添加构造的随机数据
    for i in range(number):
        uuid = shortuuid.ShortUUID().random(length=20)   # 随机uuid,可以作为导入数据库的主键信息
        company = faker.company()   #公司名称
        uniscid = faker.ssn()    #统一社会信用代码
        legen_persoon = faker.name()   #法定代表人
        risk_type = faker.risk_type()   #风险类别
        risk_description = faker.risk_description()   #风险描述
        area_code = '350100'   #区域编码
        create_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())   #时间
        company_data = [uuid, uniscid, company, legen_persoon, risk_type, risk_description,area_code,create_time]
        print(company_data)

        # 数据写入mysql
        cursor = db.cursor()    # 使用cursor()方法获取操作游标
        # SQL 插入语句
        sql = "insert into corporate_portrait(unid,society_code,company_name,corporation,fxyj_level,fxyj_tips,area_code,create_time,fxyj_time) value ('%s','%s','%s','%s','%s','%s','%s','%s','%s')" \
              % (uuid, uniscid, company, legen_persoon, risk_type, risk_description,area_code,create_time,create_time)   
              #插入的instert语句
        try:
            cursor.execute(sql)   # 执行sql语句
            db.commit()   # 执行sql语句
            print("数据插入成功")
        except:
            db.rollback()   # 发生错误时回滚
            db.close()   # 关闭数据库连接
            print("数据插入失败,已回滚")

if __name__ == '__main__':
    create_company_data(10)    #括号内填写需要插入的条数

The more we share,The more we have.

希望这篇文章对大家有用...


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 近些年,随着对于客户体验、管理水平、业务发展要求的提升,业务越来越复杂,迭代周期越来越快,如何做好提高功能测试质量?是很多技术负责人或者测试人员面对的问题。下面针对自己经验,分享一下功能测试精髓。一、功能测试面临的问题1、测试关联度复杂IT系统规模越来越大、集中度高、架构复杂、耦合度增强,使得业务和技术复杂度越来越高,测试设计和测试实施难度大,IT系统质量保障压力持续加大。2、测试周期越来越短业务需求提出到 IT 实现的周期越来越短,预留给测试的时间越来越短。面对复杂系统测试,如何压缩测试周期,提升测试效率,对测试部门管理能力和实施效率要求越来越高。3、测试组织与协同难测试规模越来越大、关联性...
            0 0 5993
            分享
          • 关于app自动化测试,元素定位工具有三个:appium自带的Appium Inspector工具Android ADT原生的工具python版uiautomator2中的weditor由于我常用的是前两个,所以下面只介绍前面两种元素定位工具(以下内容中均以微博为例子)一、元素定位工具(一)Appium Inspector使用该工具的使用前提:客户端通过adb devices的dos命令确认是否连接设备当前连接的设备是否被其它应用程序占用已安装appium desktop(appium的desktop下载地址:http://appium.io/)使用步骤如下:启动appium服务器,点击右上角的...
            15 15 2165
            分享
          • 职场新人对测试用例的困惑无非有以下几点:什么是测试用例,为什么要写测试用例?不知道怎么写,写了也不知道写的是否完整。一、什么是测试用例?百科的释义:测试用例是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。二、为什么要设计测试用例?1、指导测试工作的进行测试用例可以把产品需求转换为可操作的步骤【步骤、操作、输入、输出、优先级等】,从而指导测试人员按部进行测试。2、验证产品的...
            0 0 2088
            分享
          •        行为驱动开发英文名为Behave Driven Development,简称BDD,是一种敏捷开发方法,主要是从用户的需求出发强调系统行为。将此模型借鉴到自动化测试中称其为行为驱动测试模型,它是一种通过使用自然描述语言确定自动化测试脚本的模型。也就是说,用例的写法基本和功能测试用例的写法类似,具有良好协作的益处。这种测试模型使每个人都可以参与到行为开发中,而不仅仅是程序员。每个测试场景都是一个独立的行为,以避免重复,并且已有的行为可以重复使用。       目前在Python中最流行的 BDD 框架是...
            10 10 3015
            分享
          •       Prometheus      配置说明      在istio网格中,每个组件都会暴露一个提供metrics的endpoint。Prometheus可以从这些endpoints上抓取metrics(通过Prometheus配置文件来设置scraping,端口以及TLS等)。      为了采集整个网格的metrics,需要配置Prometheus scraping组件:控制面(istiod deployment)ingress和eg...
            0 0 1791
            分享
      • 51testing软件测试圈微信