jmeter-jdbc配置和jdbc取样器详解
前言
jmeter调用jdbc协议接口之前,需要引入 jdbc驱动
如mysql:
maven仓库中选择的驱动,要大于等于数据库的版本
下载对应的jar包放到lib目录下的ext
配置元件-JDBC Connection Configuration
连接池名称
-
自定义连接池的名称: 建议为英文
Database Connection Configuration
数据库的连接配置
-
Database URL
-
jdbc连接串
-
如mysql为 jdbc://mysql://ip:port:database
-
可选项?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
-
-
-
JDBC Driver Class
数据库 DatabaseURL Driverclass MySQL jdbc:mysql://host[:port]/dbname com.mysql.jdbc.Driver PostgreSQL jdbc:postgresql:{dbname} org.postgresql.Driver Oracle jdbc:oracle:thin:@//host:port/service OR jdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid}))) oracle.jdbc.OracleDriver Ingress (2006) jdbc:ingres://host:port/db[;attr=value] ingres.jdbc.IngresDriver Microsoft SQL Server (MS JDBC driver) jdbc:sqlserver://host:port;DatabaseName=dbname com.microsoft.sqlserver.jdbc.SQLServerDriver Apache Derby jdbc:derby://server[:port]/databaseName[;URLAttributes=value[;…]]
-
输入对应的数据库用户名、密码
jdbc取样器
JDBC Request
-
pool:要与JDBC配置中的pool名称保持一致
SQL Query
-
query type
-
select statement: 执行的sql为select类型
-
jmeter默认不支持在一个取样器中,写多个sql
-
-
update statement
-
update 的sql
-
-
insert sql
-
insert sql
-
-
delete sql
-
delete的sql
-
-
callabel statement
-
调用存储过程
-
-
prepared select statement
-
当select语句中带有变量,也可以用$引用
-
select * from test_table where name = '${name}'
-
-
当有多个变量时,用英文逗号分隔
-
有几个变量就对应几个占位符,位置要一一对应
-
不管变量对应什么类型,建议一律写varchar
-
-
prepared update statement
-
update语句中带有变量
-
-
注意:
-
在sql中带有变量的时候,通常使用?占位符
-
使用? 占位,那么此时 Query type 就必须是 prepared的那两个
-
-
commit:提交
-
Rollback:回滚
类型 解析 Select statement 查询语句,只能执行一条 update statement 更新语句,只能执行一条 callable statement 调用存储过程 prepared select statement 带参数的查询语句 prepared update statement 带参数的更新语句 commit 提交 rollback 回滚 autocommit(false) 自动提交 autocommit(true) 编辑${} 把sql当脚本放csv文件中 -
variable
定义变量接收一列中的多个值,多个值,会在变量名称后面自动添加 下划线和数字
-
Parameter values
-
需要传递的变量值,多个变量用(实际值) , 分隔
-
如select * from test_table where id = ?
-
这里就直接填id对应的值,也可以使用${}去引用变量
-
-
-
Parameter types
-
变量的类型,建议使用varchar
-
-
Variable Names
-
定义变量接收一列中的多个值,多个值,会在变量名称后面自动添加 下划线和数字
-
-
-
Result Variable Name
-
一个 Object 变量存储sql执行的返回值
-
如果在 sql 语句中使用变量,且是字符串类型,需要加上引号(前提是变量值没有加引号),如 '${name}'
-
select * from test_table where name = '${name}'
-
-
如果在 Parameter values 中使用变量,且是字符串类型,不需要加上引号,只需要在 Parameter types 里写明为 varchar 即可
-
-
result variable names
-
该变量是个数组,每一个元素代表一条记录
-
-
-