一、测试环境准备:
数据库:Oracle10g,库名:myorcl;
JMeter:jmeter-2.6安装在win2003系统下
JDBC驱动:ojdbc14.jar,oracle安装目录下(oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar)文件复制到JMeter/lib目录下;
二、测试步骤:
1、打开测试计划,添加JDBC驱动:
2、添加一个线程组,在右键“线程组”菜单中添加——配置元件——“JDBC Connection Configuration”,配置“JDBC Connection Configuration”页面,
Pool Timeout:连接超时可以修改此时间,配置结果如下:
3、添加JDBC request;
需要修改的参数包括Variable Name,要与上面的 JDBC Connection Configuration填写同样的内容,如此处的:oracleConn。这里表示 JDBC Connection Configuration建立一个名为Oracle 的连接池,之后其它的JDBC Request都共用这个连接池.
插入数据:5、添加一些响应断言:线程组右键菜单——添加——断言——响应断言。
5、添加断言结果:线程组右键——添加——监听器——结果断言
备注:Assertion Results对Jmeter压测的throughout有严重的影响。
三、遇到的问题1、java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:ORCL错误解决;原因可能是没有加载包或是错误的加载包,解决方案:如果没有加载包,先关闭jmeter,让后将class12.jar/ojdbc14.jar复制到jmeter/lib目录中,重新打开jmeter;
如果有加载包,可能是版本问题,换个最新版的加载包后重启试试。
2、 java.sql.SQLException: No pool found named: ''错误,原因是Variable Name:与前面的输入不一致,改成一致就ok了。
3、出 现:org.apache.avalon.excalibur.datasource.NoAvailableConnectionException: Could not create enough Components to service your request (Timed out).
解决方法:出现这个原因是因为连接超时,增大Pool TimeOUT就可以了。
4、执行时提示:ORA-00911: invalid character。
解决方法:确保你在JDBC Request里面的Query中输入的SQL语句是正确的。注意:SQL语句后面不要添加分号。
四.驱动类
Datebase | Driver class | Database URL |
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://host:port/{dbname} |
PostgreSQL | org.postgresql.Driver | jdbc:postgresql:{dbname} |
Oracle | oracle.jdbc.driver.OracleDriver | Jdbc:oracle:thin:user/pass@//host:port/service 如:Jdbc:oracle:thin:@192.168.68.12:1521:myorcl |
Ingres(2006) | ingres.jdbc.IngresDriver | Jdbc:ingres://host:port/db[;attr=value] |
MSSQL | com.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driver
| jdbc:sqlserver://IP:1433;databaseName=DBname 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library" |