软件测试百万数据的插入

最近在学习在用jmeter做有关性能测试方面的知识,感觉到对于一个测试人员需要掌握的东西真的是太多,心累。
本次主要说说针对我们测试人员需要的数据怎么进行生成,毕竟当数据过百万时还是很考验开发人员的sql响应时间,会影响页面的反应时间和消耗服务器资源

下面进入主题。

工具:
python3
Faker 伪造数据这里有个简单使用的说明 下载方式 pip install faker
pymysql

下面是代码

import pymysql
from faker import Faker
import time
import random

fake = Faker();         # 创建对象
fake = Faker("zh_Cn");  # 设置语言


def myList(value):
    '''
    生成一个列表,[('admin1', 'admin1qq.com', 'hahaadmin1'),...]
    :param value: 自定义的数据量
    :return: new_list
    '''
    new_list = []  # 新建一个空列表用来存储元组数据
    start = time.time()	#记录开始时间
    for i in range(0, value):
    	'''
    	针对一些唯一要求添加的随机,如果有的表需要关联特定的数据,可以这样
    	random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )
		'lemon'
    	这里有一些简单的随机函数的使用 https://www.cnblogs.com/yanzi-meng/p/7827165.html
    	'''
        nub = random.randint(0, 100)	
        username = fake.name() + str(nub);
        password = fake.ean8();
        email = fake.safe_email();

        tup = (username, password, email)  # 构造元组变量名养成习惯与表名一致
        new_list.append(tup)  # [(),(),()...]
    end = time.time()	#记录结束时间
    print("*" * 5 + "generate list ok" + "*" * 5)
    print("数据生成使用时间(秒:)" + str(end - start))
    return new_list


def Insert_Data(dataList):
    # 打开数据库连接
    db = pymysql.connect(host="localhost", user="root", password="123456", db="XXXX", port=3306);
    # 创建游标
    cursor = db.cursor();
    '''
    数据库插入
    :param newList: 传入的列表数据
    :return:
    '''
    start = time.time()
    try:
        sql = "insert into t_user(username,password,email) values(%s,%s,%s)"  # 要插入的数据
        cursor.executemany(sql, dataList)  # 执行插入数据

        db.commit()
        cursor.close()
        db.close()
        print('insert ok')
    except Exception as e:
        print(e)
    end = time.time()
    print("数据插入使用时间(秒:)" + str(end - start))

if __name__ == '__main__':
    start = time.time()
    newList = myList(1000000)
    Insert_Data(newList)
    end = time.time()
    print("总共使用时间:"+str(end - start))

代码基本原理根据这里产生 然后做了些调整数据的生成

下面是我生成数据所使用的时间,大多数时间浪费在了生成数据上面,毕竟要做一些处理,百万数据插入数据库用例一分钟十七秒
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值