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)|* Variable Names:SQL查询出的结果,逗号分隔的变量名列表。变量列表必须与调用返回的 OUT 参数的顺序相同。如果变量名少于 OUT 参数,则线程上下文变量中存储的结果数应与提供的变量名相同。如果存在的变量名多于 OUT 参数,则将忽略多余某年<mark>示例中有该变量的演示</mark>* Result Variable Name: SQL查询出的的结果保存到指定的对象,这是一个包含行映射列表的Object变量。每个映射都包含作为键的列名和作为值的列数据 <mark>示例中有该变量的演示</mark>
实例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[;…]]