前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Mysql存储过程造百万级测试数据

使用Mysql存储过程造百万级测试数据

作者头像
muntainyang
发布2020-10-23 11:24:24
2.1K0
发布2020-10-23 11:24:24
举报
文章被收录于专栏:IT测试前沿

1.首先我们先创建一张表

创建一张表以存放测试数据,该表包含四个字段:唯一自增量的主键id、姓名name、手机号mobile、身份证号idcode。

-- ----------------------------

-- Table structure for `user_test`

-- ----------------------------

DROP TABLE IF EXISTS `user_test`;

CREATE TABLE `user_test` (

`id`int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(10) DEFAULT NULL,

`mobile` varchar(11) DEFAULT NULL,

`idcode`varchar(18) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.第一步先写简单的增加一条数据的存储过程

DROP PROCEDURE IF EXISTS proInsert;

Create procedure proInsert()

Begin

Insert into user_test(name,mobile,idcode)values('姓名1','13900001111','123456789012345678');

End

Call proInsert ();

执行结果如下图:

3.然后在原有存储过程基础上增加循环语句

DROP PROCEDUREIF EXISTS proInsert;

Create procedureproInsert()

Begin

#定义一个初始变量

Declare i int;

Declare _name varchar(10)default 1;

Declare _mobilevarchar(11) default 1;

Declare _idcodevarchar(18) default 1;

#设置变量值为1

Set i=1;

#此处的i值可以根据需要调整为1000、10000、100000等数量级。

While i<=10 do

#mysql的连接函数

Set_name=concat('姓名_',i);

#name加后缀

Set _mobile=1380000000+i;

#mysql 随机函数,生成0-1的小数

Set_idcode=123456789010000000+i;

Insert intouser_test(name,mobile,idcode) values(_name,_mobile,_idcode);

Set i=i+1;

End while;

End

4.使用call语句调用存储过程,或者使用客户端软件运行函数。

CallproInsert();

5.增加1000条后的数据。

编辑while i<=1000 do,则增加1000条测试数据。修改为10000则增加10000条数据。

6.再认识一些存储过程常用的语法:

a) 删除存储过程命令:

DROP {PROCEDURE | FUNCTION} [IF EXISTS] 名称;

b) 创建存储过程:

create procedure 名称(参数,.....)

begin

过程体;

过程体;

end

c) 参数:

in|out|inout 参数名称 类型(长度)

d) 在sql语句中给变量赋值:

into

e) 在过程体外声明变量:

@变量名

f) 重新制定sql语句的结束符:

delimiter //

g) 例子:获取5条文章记录

create procedure getNews()

begin

select * from news limit 5;

end

h) 例子:获取n条文章记录

create procedure getNewsN(in n int(5))

begin

select * from newslimit n;

end

i) 例子:获取某栏目下文章的条数。

create procedure getNewsByType(in fidint,out num int)

begin

select count(*) into num from news where fcid=fid;

end

j) 声明变量:

declare变量名 类型(长度) default默认值;

k) 给变量赋值:

set 变量名=值;

以上就是简单的一个造测试数据的存储过程方法,其实造测试数据的方法挺多的,比如使用excel的增量+ultraedit的列编辑造数据,使用Jmeter的random函数造数据等等,抛砖引玉,以期大家学会更多的方法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT测试前沿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档