Jmeter之JDBC请求1--创建
一、JDBC连接配置
1、配置类内容介绍:
1)、数据库驱动类和URL格式
=======================================================================================================================|
| 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:@host:port:{ddname} |
|===============|=============================================|========================================================|
| Ingres (2006) | ingres.jdbc.IngresDriver | jdbc:ingres://host:port/db[;attr=value] |
|===============|=============================================|========================================================|
| MSSQL | com.microsoft.sqlserver.jdbc.SQLServerDriver| jdbc:sqlserver://IP:1433;databaseName=DBname |
| | 或者 net.sourceforge.jtds.jdbc.Driver | 或者 jdbc:jtds:sqlserver://localhost:1433/"+"library" |
|======================================================================================================================|
2)、下载数据库驱动,放置在jmeter目录下的lib目录中
==============================================================
| Datebase | Driver jar包名 |
|===============|=============================================|
| MySQL | mysql-connector-java-5.1.6 |
|===============|=============================================|
| Oracle | class12.jar |
|===============|=============================================|
| MSSQL | sqljdbc4.jar |
|===============|=============================================|
注意:不同驱动类对应的jar包也不同
2、添加JDBC连接配置
3、JDBC连接池配置示例(mysql为例)
二、JDBC请求
1、内容介绍
1)SQL Query--Query Type
a)、Select Statement--选择语句—— 一次只能包含一条sql语句,并且结尾没有“;”
b)、Update Statement--更新语句—— 用于插入、更新、删除,一次只能包含一条sql语句,并且结尾没有“;”
c)、Callable Statement--调用语句—— 一次可包含多个sql,顺序执行,但非结尾的sql要加上“;”
d)、Prepared Select Statement--预选择语句—— 与Select Statement执行效果相同,但相对更安全,避免攻击;
e)、Prepared Update Statement--预更新语句—— 与Update Statement执行效果相同,但相对更安全,避免攻击;
注:当选择“Prepared Select Statement", "Prepared Update Statement" or "Callable Statement”类型时,每一个语句缓存是通过JDBC连接请求。
默认情况下,每个连接最多存储100 PreparedStatements,这会影响你的数据库(游标)。
2)SQL Query--其他参数
Query:填写的sql语句未尾不要加“;”
Parameter valus:参数值,顺序替代Query中的?;
Parameter types:参数类型
Variable names:保存sql语句返回结果的变量名 ,用于作为参数供调用
Result variable name:创建一个对象变量,保存所有返回的结果 ,供调用;
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果。
2、添加JDBC请求
3、配置JDBC请求
4、请求结果查看
1)添加查看结果树
2)查看响应结果
三、常见问题
1、连接配置问题
1)、出现:java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:ORCL错误解决
【解决方法】原来是因为没有加载包的缘故,关闭jmeter,然后将class12.jar复制到jmeter目录下面的lib目录中,重新启动运行即可。
2)、连接MySQL数据库时,出现:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'错误
【解决方法】看起来似乎是设置字符的问题,后来在JDBC连接配置那里将Database URL加上字符编码即可(?characterEncoding=UTF-8)
jdbc:mysql://127.0.0.1:3306/paydb?characterEncoding=UTF-8
3)、出现:org.apache.avalon.excalibur.datasource.NoAvailableConnectionException: Could not create enough Components to service your request (Timed out).
【解决方法】出现这个原因是因为连接超时,增大Pool TimeOUT就可以了。
2、请求执行问题
1)、sql语句中包含中文,执行结果无
【解决方法】字符编码问题,可在jdbc链接配置的database URL加上字符编码即可(可按照自己项目的数据库文件配置来,比如:?characterEncoding=GBK&)