ITPub博客

首页 > 应用开发 > Java > Jmeter对数据库进行压测

Jmeter对数据库进行压测

原创 Java 作者:果果的空间 时间:2015-11-13 17:00:38 0 删除 编辑
根据网上公开课,学习Jemeter,对数据库进行压测
1.打开Jemeter,新建测试计划:
自定义命名:jdbc压测
官网:http://jmeter.apache.org/usermanual/component_reference.html

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())

7.如何取到查询结果
http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Request
添加一个后置处理器

报错: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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Java读取TXT内容
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-07-18

  • 博文量
    60
  • 访问量
    115435