JMeter学习JDBC测试计划——连接Oracle

时间:2024-03-29 18:02:41
转载 http://blog.csdn.net/scorpio_tester/article/details/42167919

一、测试环境准备:

数据库: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驱动:

JMeter学习JDBC测试计划——连接Oracle

2、添加一个线程组,在右键“线程组”菜单中添加——配置元件——“JDBC Connection Configuration”,配置“JDBC Connection Configuration”页面,

Pool Timeout:连接超时可以修改此时间,配置结果如下:

JMeter学习JDBC测试计划——连接Oracle

3、添加JDBC request;

JMeter学习JDBC测试计划——连接Oracle

需要修改的参数包括Variable Name,要与上面的 JDBC Connection Configuration填写同样的内容,如此处的:oracleConn。这里表示 JDBC Connection Configuration建立一个名为Oracle 的连接池,之后其它的JDBC Request都共用这个连接池.

插入数据:

JMeter学习JDBC测试计划——连接Oracle

5、添加一些响应断言:线程组右键菜单——添加——断言——响应断言。

JMeter学习JDBC测试计划——连接Oracle

5、添加断言结果:线程组右键——添加——监听器——结果断言

JMeter学习JDBC测试计划——连接Oracle

备注:Assertion ResultsJmeter压测的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/[email protected]//host:port/service

如:Jdbc:oracle:thin:@192.168.68.12:1521myorcl

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"


几点说明

Variable Name:数据库的连接池名称;类似网站,可以创建多个连接持,后边的网站可以指定连接池以读取不同的配置。

Validation Query:默认是Select 1,如果是Oracle,需改为Select 1 from dual,否则报错 Cannot create PoolableConnectionFactory (ORA-00923: 未找到要求的 FROM 关键字)

Database URL:数据库连接地址,格式    jdbc:oracle:thin:@ip:端口:实例名     即   jdbc:oracle:thin:@172.17.100.131:1521:ORCL

JDBC Driver class:jdbc驱动,oracle的填写 oracle.jdbc.driver.OracleDriver

Username:数据库用户名

Password:对应的数据库密码