给测试环境造大批量数据

给测试环境造大批量数据

测试中有需要大批量数据场景:一是准备大量测试数据,二是对数据库执行压测,本篇记录三种造大批量数据的方法

目录

1、执行存储过程

2、使用python

3、使用jmeter

准备工作:

在数据库中创建一张表,a唯一:

create TABLE mytest(a int(11) PRIMARY key,b int(11),c VARCHAR(20));

本篇记录生成10条数据方法,具体需要多少可以根据自己的需求设置循环次数

1、执行存储过程

了解存储过程格式可参考:https://www.cnblogs.com/weizhideweilai/p/8552021.html

描述:将数据库中不可重复的字段定义成变量,每次执行插入后,将该变量加1

drop PROCEDURE if EXISTS newone;

CREATE PROCEDURE newone()

begin

DECLARE id1 int; #定义一个变量

set id1=1; #初始化一个值

while id1<=10

do

insert into mytest(a,b,c) VALUES (id1,1,"test");

set id1=id1+1;

end while;

end;

call newone();

结果:

2、使用python

第一种:使用python生成数据,再复制到mysql中执行

python脚本:

for i in range(1,11):

a = "(%s, 1, 'test'),"%int(i)

with open("E://b.txt", "a") as fp:

fp.write(a+"\n")

生成数据如下:

修改结束符为分号,在mysql中执行插入:

insert into mytest(a,b,c) VALUES (1, 1, 'test'),

(2, 1, 'test'),

(3, 1, 'test'),

(4, 1, 'test'),

(5, 1, 'test'),

(6, 1, 'test'),

(7, 1, 'test'),

(8, 1, 'test'),

(9, 1, 'test'),

(10, 1, 'test');

第二种:直接使用python链接mysql,执行sql语句

参考https://www.cnblogs.com/weizhideweilai/p/13227049.html设置python连接mysql

在main函数中编写脚本:

if __name__ == '__main__':

insert_sql = "INSERT INTO mytest VALUES "

insert_values = "".join(["(%s, 1, 'test'), \n"%int(i) for i in range(1,11)])

# 拼接sql

sql = insert_sql + insert_values[:-3]+";"

print(sql)

db = DbConnect(dbinfo, database="haveatry")

db.execute(sql)

db.close()

3、使用jmeter

首先使用jmeter连接mysql,参考:https://www.cnblogs.com/weizhideweilai/p/9320805.html

使用函数助手生成随机数${__Random(1,20,${a})}

填写sql请求:

设置循环次数为10:

随机数尽量设置大一点,避免重复,我这里范围太小,会有重复值生成,导致部分请求执行失败

结果:

相关推荐

中国为何要救特斯拉?(深度好文) 中国为什么要救 特斯拉 ?我们何止是救了特斯拉,还买一送一了一个新的世界首富。因为当美国部分人企图完全和中国决裂脱钩时,...
我依然爱着你是哪一首歌的歌词 哪首歌歌词含有我依然爱着你
2025高考志愿填报时间和截止时间一览表(全国各省汇总)
我的世界工具图鉴
365现金app下载

我的世界工具图鉴

📅 06-27 👍 339
中国为何要救特斯拉?(深度好文) 中国为什么要救 特斯拉 ?我们何止是救了特斯拉,还买一送一了一个新的世界首富。因为当美国部分人企图完全和中国决裂脱钩时,...
我依然爱着你是哪一首歌的歌词 哪首歌歌词含有我依然爱着你