测试技巧-批量插入数据

上一篇 / 下一篇  2009-04-15 10:58:54 / 个人分类:linux

测试过程中,有时需要很多条的数据库记录,比如分页功能等的测试

但一条条手动增加记录,比较花时间,也很累。。。

对一些有WEB页面的可以用loadrunner等工具来循环执行脚本,批量增加记录;
但对于一些数据表,没有WEB页面可操作,而是通过后台批处理后插入数据库的,这样就没办法用loadrunner等来操作了,(而且使用loadrunner来插入数据,还要录制脚本,也是比较麻烦的)

所以这里介绍一种方法来批量插入数据库记录:
利用SHELL脚本(当然是在linux服务器下使用的)

 

touch test.sh  //创建一个.sh文件
vi test.sh     //编辑文件,并在文件中插入如下的内容

###########################################################

#!/bin/bash
for ((i=1;i<=100;i++))
do
DATE=`date -d "$i days ago" +%Y-%m-%d` 
echo "insert into test (date,StringA,intB) values (\"$DATE\",\"aaa\",\"$i\");"|mysql -uroot -ppasswd database
done

################################################################# 


chmod +x test.sh  //对脚本增加可执行权限
./test.sh         //运行脚本

脚本内容说明:

for ((i=1;i<=100;i++)) 
//执行100次循环

DATE=`date -d "$i days ago" +%Y-%m-%d`  
//设置DATE变量,date -d "$i days ago" +%Y-%m-%d 用来生成形如“2009-04-15”这样格式的日期;且日期数据为变量“i”天以前的日期;这样生成的日期就是都不相同的;

insert into test (date,StringA,intB) values (\"$DATE\",\"aaa\",\"$i\");
//插入数据库的语句,字段及插入数据根据实际来变动,如果某个字段要求是唯一值,就使用变量的方式替换;
//另注意字段值是字符串的要使用双引号,并对双引号做转义;


mysql -uroot -ppasswd database
//连接mysql,-u后是用户名,-p后是密码,database指的是使用到的数据库

#####################################################################################

使用方法:

echo "insert into test (date,StringA,intB) values (\"$DATE\",\"aaa\",\"$i\");"|mysql -uroot -ppasswd database

 mysql -uroot -ppasswd-e "insert into database.test (date,StringA,intB) values (\"$DATE\",\"aaa\",\"$i\");"

每次都要重新连接mysql,需要导入的数据很多时,效率会很低

另一方法效率会高很多:

###########################################################

#!/bin/bash
for ((i=1;i<=100;i++))
do
DATE=`date -d "$i days ago" +%Y-%m-%d` 
echo "insert into test (date,StringA,intB) values (\"$DATE\",\"aaa\",\"$i\");" >> a.sql
done

#################################################################

把需要导入的sql语句先整理到a.sql中,再登录mysql,source a.sql,效率会高很多啊,特别是在好几十万条,好几百万条记录时;


TAG: MySQL mysql shell Shell 测试

 

评分:0

我来说两句

Open Toolbar