根据网上公开课,学习Jemeter,对数据库进行压测
1.打开Jemeter,新建测试计划:
自定义命名:jdbc压测
2.创建 配置元件-》JDBC Connection Configuration
定义变量名(Variable Name):test_select
Max Number of Connections数,尽量和线程数相等
但是大数据压测时,需要修改JVM的数
建议:线程数1000时,连接池数为200
3.新建线程组
定义名称
4.添加Sampler-》JDBC Request
1)填写变量池名称(Variable Name),是JDBC configuration中定义的变量名,通过这个变量名找到访问的数据库
2)填写SQL语句,清除语句:transcate 数据库 表名,Query Type:Update Statement
5.添加 监听器-》查看结果树
点击“执行”按钮,可以正常返回查询结果
6.插入数据,使用函数助手进行随机数设置:选项-》函数助手对话框
字段为随机字符,6位,生成字符集为:abcdefghijklmnopqrstuvwxyz1234567890
insert into 表名 (id, code, name,update_time) values (1,'aaa','test',now())
insert into 表名 (id, code, name) values (${__Random(0,9,)},${__RandomString(6,abcdefghijklmnopqrstuvwxyz1234567890,,)},'test',now())
insert into 表名 (id, code, name) values (${__Random(0,9,)},${__RandomString(6,abcdefghijklmnopqrstuvwxyz1234567890,,)},'test',now())
7.如何取到查询结果
添加一个后置处理器
报错:size()是整形值,需要处理 log.info(size+"");
查看log:选项-》Log Viewer
size = vars.getObject("resultObject").size();
log.info("计数:"+size+"");
for(int i =0; i<size; i++)
{
var data = vars.getObject("resultObject").get(i);
log.info(data.get("id")+" "+data.get("amount")+" "+data.get("real_name")+" "+data.get("loan_no")+"\n");
}
注意:做压力测试时,需要禁掉“查看结果树”,要设置“聚合报告”
出现错误:
问题1:No suitable driver found for jdbc:
网上解决方法:
1)连接URL格式出现了问题(Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/XX","root","XXXX")
2)驱动字符串出错(com.mysql.jdbc.Driver)
3)Classpath中没有加入合适的mysql_jdbc驱动
以上都没有问题,将mysql-connector-java-3.1.14-bin.jar的jar包加入C:\Program Files\Java\jre1.6.0_02\lib\ext文件夹下,OK了
原来是不仅仅要求将驱动加入classpath中,而且需要将该jar包加入到java运行环境的外部jar包中
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29056818/viewspace-1836997/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29056818/viewspace-1836997/