本文共 1233 字,大约阅读时间需要 4 分钟。
一、
书接上回
业务场景回顾:
在执行压测脚本之前,我们通常要准备数据库存量数据,一般是以生产数据为依据成比例增加,少则需要上百万,多则需要上千万、上亿,经常有很多时间要花在造数据上。
如何快速准备数据呢?
上一篇文章中讲了用mysql存储过程的方式,今天继续讲解另外两种方式。
二、
使用java代码方式
方式一、使用java代码方式
主要分为三步:
第一步:获取数据库连接,代码如下:
只需要对照修改成自己的IP、端口、数据库名、用户名、密码,其它代码都不用变。
第二步:操作数据库并关闭连接,代码如下:
其中是一个简单的insert语句,通过拼接前缀和后缀构成完成的sql插入语句,有以下几点要注意:
1、conn.setAutoCommit(false);这里是关闭事务自动提交,不然每进行一次insert操作mysql就会创建一个事务,对效率影响很大。
2、使用的是insert into tb (...) values(...) , (...)...; 这种一次insert插入多条语句的方式,而不是普通的insert into tb (...) values (...); insert into tb (...) values (...); ...这种单条insert语句,可以大大提高效率。
第三步:在main方法中分别调用这两个方法即可
二、
方式二、使用jmeter脚本方式
Jmeter操作数据库主要分为两个步骤:
第一步:配置JDBC Connection Configuration
其中注意几点:
1、Variable Name:这个变量名称要与接下来添加的jdbc请求中的一致
2、Database URL:这个跟前面java代码中的url类似,后面是数据库IP、端口、名称
第二步:添加JDBC Request,写sql语句
其中注意几点:
1、Variable Name:这个变量名称必须与上面JDBC Connection Configuration中配置的一样
2、此处对于insert语句选择的query type是prepared update statement,比update statement效率高一点
3、sql语句中用到的变量id是通过计数器的方式获取的,实现每次递增;
sysdate()函数获取系统当前时间;
后面是生成一个随机字符串。
4、计数器在线程组右键--配置元件--计数器,设置如下:
此处实现从1开始,每次递增1,一直到10000000,变量名是id。
脚本写好了,运行没问题,设置好响应断言,就可以让它一直循环了。
end
--------
本文首发于本人原创公众号【媛测】(原名-玩转jmeter),专注分享性能、自动化测试等相关知识,寻找志同道合之士共同成长!扫码关注后分别回复jmeter、python、linux,领取个人总结资料。