jmeter 从数据库获取变量信息
官方文档参考: [jmeter安装路径]/printable_docs/usermanual/component_reference.html#JDBC_Connection_Configuration
-
引入数据库连接:
将MySQLjar包存放至jemter指定目录(
/apache-jmeter-3.3/lib
) -
jmeter 组件:
- JDBC Connection Configuration
- JDBC Sampler
数据库相关组件:
-
JDBC Connection Configuration 配置数据库连接的相关信息,包括数据库驱动类、数据库连接 URL、用户名和密码等。
关键配置:
-
Variable Name for created pool:连接池的变量名,可自行定义,执行SQL时通过该变量名于数据库建立连接
-
Database Connection Configuration数据库连接配置:
-
Database URL:不同类型数据库类型会有差异
-
JDBC Driver Class:选择对应的驱动类
-
Username:用户名
-
Password:密码
-
-
-
JDBC Sampler 配置要执行的 SQL 查询语句。
关键参数:-
Variable Name of Pool declared in JDBC Connection Configuration:连接池绑定到的JMeter变量的名称。这必须与JDBC连接配置的“ Variable Name ”字段一致。执行SQL时使用的数据库连接变量名
-
SQL Query:
- QueryType 查询类型:
类型 适用场景 Select Statement 选择语句 Update Statement Update语句-也可用于插入和删除 Callable Statement 可调用语句 Prepared Select Statement 准备好的Select语句 Prepared Update Statement 准备好的更新语句-也可用于插入和删除 Commit 提交 Rollback 回滚 Autocommit(false) 自动提交(false) Autocommit(true) 自动提交(true)
- QueryType 查询类型:
-
Variable Names:SQL查询出的结果,逗号分隔的变量名列表。
变量列表必须与调用返回的 OUT 参数的顺序相同。
如果变量名少于 OUT 参数,则线程上下文变量中存储的结果数应与提供的变量名相同。
如果存在的变量名多于 OUT 参数,则将忽略多余某年
示例中有该变量的演示 -
Result Variable Name: SQL查询出的的结果保存到指定的对象,这是一个包含行映射列表的Object变量。每个映射都包含作为键的列名和作为值的列数据 示例中有该变量的演示
-
实例JDBC Connection Configuration.jmx 下载地址 提取码:gpex:
从数据库中查询表的ID、SEND_TO两列的数据,然后通过beanshell 打印出来。
1. 解析Variable Names
- 解析Result Variable Name
ps 数据库的默认端口:
-
关系型数据库
数据库名 端口号 MySQL 3306 SQL Server 1433 Oracle 1521 DB2 50000 PostgreSQL 5432 PointBase 9092 -
非关系型数据库
数据库名 端口号 MongoDB 27017 Redis 6379 Memcached 11211
不同数据库对应的类及数据库链接格式:
MySQL
Driver classcom.mysql.jdbc.Driver
Database URLjdbc:mysql://host[:port]/dbname
PostgreSQL
Driver classorg.postgresql.Driver
Database URLjdbc:postgresql:{dbname}
Oracle
Driver classoracle.jdbc.OracleDriver
Database URLjdbc:oracle:thin:@//host:port/service OR jdbc:oracle:thin:@(description=(address=(host={mc-name})(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))
Ingress (2006)
Driver classingres.jdbc.IngresDriver
Database URLjdbc:ingres://host:port/db[;attr=value]
Microsoft SQL Server (MS JDBC driver)
Driver classcom.microsoft.sqlserver.jdbc.SQLServerDriver
Database URLjdbc:sqlserver://host:port;DatabaseName=dbname
Apache Derby
Driver classorg.apache.derby.jdbc.ClientDriver
Database URLjdbc:derby://server[:port]/databaseName[;URLAttributes=value[;…]]