学习背景:做性能测试需要大量数据做场景
前提:有数据库读取和插入权限
方法一:
Excel导入的方式,可以在Excel里面造大量数据,然后导入测试库,如果有权限从生产数据库导出数据再导入到测试库就更好了。
优点:简单
缺点:数据量达到百万级别还是比较麻烦
方法二:
用insert语句成倍往数据库里面添加重复数据,示例:
insert into table(tid,tname,tscore) select tid,tname,tscore from table;
理解:往table表插入数据,value为从table表查出的tid,tname,tscore值
问题:不想要重复的数据怎么办?
插入数据后再写修改字段sql语句,例如
update table set tid=contact(100,id);
update table set tname=contact(‘stu’,id);
update table set tscore=50+RAND()*50; //表示50+(0到50)的随机数
优点:快速
缺点:对于大量数据的插入还是麻烦
方法三:
用python连接数据库,通过循环来写入数据,示例:
import pymysql #导入数据库
#连接数据库
db = pymysql.connect(host=‘xxxx’,user=‘xxx’,passwd=‘xxxx’,db=‘xxxx’,port=3306,charset=‘utf-8’)
#定义游标
cur = db.cursor()
#初始化循环次数
count = 0
#初始化字段值
tid = 1000
tscore = 50
#循环执行sql
while count<1000:
count += 1
tname = ‘SFname’ + str(count)
tid += 1
values = (int(tid), str(tname), int(tscore))
sql = “”“insert into table (tid ,tname, tscore) values(%s,%s,%s)”""
cur.execute(sql,values)
db.commit()
cur.close()
db.close()
优点:造大量数据方便,只需把循环次数改为100万即可
缺点:相比较前两种没那么简单
方法四:
写存储过程,网上一搜一大堆,不再赘述,也是循环插入数据的原理