数据库连接配置器,用来连接数据库,是一个连接池。 界面介绍
1.右键线程组->添加->配置元件->JDBC Connection Configuration
Variable Name for created pool:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
Max Number of Connections:连接池的最大连接数,在大多数情况下,将其设置为零(0)。这意味着每个线程将获得其自己的池,其中包含单个连接,即线程之间不共享连接。如果你真的想使用共享池),那么将最大链接数设置为与线程数相同,以确保线程不会相互等待。
Max Wait (ms):最大超时间
Time Between Eviction Runs (ms) :空闲连接池清理的时间间隔。
Auto Commit:事务是否自动提价选项,比如Oracle执行一条更新操作,不Commit一下,数据不会更新到数据库中的,这个选项帮我们自动提交。
Transaction Isolation:JDBC事务控制 数据库的事务控制ADIC传送门
TRANSACTION_NONE:不支持的事务,TRANSACTION-NONE=0
TRANSACTION_READ_UNCOMMITEED:允许脏读,不可重复读和幻读
TRANSACTION_READ_COMMITEED:禁止脏读,允许不可重复读和幻读
TRANSACTION_REPEATABLE_READ:禁止脏读和不可重复读,允许幻读
TRANSACTION_SERILIZABLE:禁止脏读,不可重复读和幻读
DEFAULT:JMETER设定的。默认值是1,其实是TRANSACTION_READ_COMMITEED 禁止脏读,允许不可重复读和幻读。
什么是脏读,不可重复读,幻读
脏读:一个事务读取另外一个事务未提交的数据。 不可重复读:一个事务再次读取之前的数据时,这个数据已经被另外一个事务修改。 幻读:一个事务重新执行一个查询,返回的记录包含了其他事务提交的新纪录。
Test While Idle:测试池的空闲连接,请参阅BasicDataSource.html#getTestWhileIdle。查询验证。
Soft Min Evictable Idle Time(ms):
Validation Query:验证SQL的语法
Database URL:数据库地址,以下为不同数据库的连接方式
MySQL Driver class com.mysql.jdbc.Driver Database URL jdbc:mysql://host[:port]/dbname PostgreSQL Driver class org.postgresql.Driver Database URL jdbc:postgresql:{dbname} Oracle Driver class oracle.jdbc.OracleDriver Database URL jdbc: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 class ingres.jdbc.IngresDriver Database URL jdbc:ingres://host:port/db[;attr=value] Microsoft SQL Server (MS JDBC driver) Driver class com.microsoft.sqlserver.jdbc.SQLServerDriver Database URL jdbc:sqlserver://host:port;DatabaseName=dbname Apache Derby Driver class org.apache.derby.jdbc.ClientDriver Database URL jdbc:derby://server[:port]/databaseName[;URLAttributes=value[;…]]
JDBC Driver class:数据库类型,数据库的驱动包需要放到/lib
目录下,使用mysql依赖mysql-connector-java-8.0.13.jar
下载地址
Username:用户名
Password:密码
数据库连接配置器,用来连接数据库,是一个连接池。 界面介绍
右键线程组->添加->取样器->JDBC Request
Variable Name of Pool declared in JDBC Connection Configuration(必须) :连接池绑定的JMeter变量的名称。这必须与JDBC连接配置的“变量名称”字段一致。
Query Type:查询类型,根据语句设置查询的类型
${}
引入参数,不可使用占位符进行参数化${}
引入参数,不可使用占位符进行参数化。${}
引入参数,也可以使用占位符引入参数。${}
引入参数,可以使用占位符引入参数。${}
引入参数,可以使用占位符引入参数。${}
引入参数,可以使用占位符引入参数。${}
引入参数,可以使用占位符引入参数。${}
引入参数,可以使用占位符引入参数。${}
引入参数,可以使用占位符引入参数。SQL Query SQL查询语句,不需要输入行尾的分好
Parameter values:参数值,多个值用,
分割
Parameter types:参数类型,INTEGER, DATE, VARCHAR, DOUBLE
Variable Names:SQL的执行语句往往返回的是一个数据集,我们可以把它保存的变量中,让后面的元件调用。
Result variable name :上面的 Variable Names中额变量是个数与队列对应的,Result variable name创建一个数组,保存所有返回的结果。
Query timeout:定义查查询时间
Handle result set:定义如何处理由callable- statements语句返回的结果
连接mysql数据库,
jdbc:mysql://rm-wz955w1jr2dnj6u9bo.mysql.rds.aliyuncs.com:3306/majiang
查询全部表 :
查询结果 :
nickname
${nickanme}
引入变量, 注意加括号,不然报错
?
引入变量 Parameter values:hunan%, 9586 Parameter types:VARCHAR,INTEGER 查询语句select Nike, id, unionid, openid from user where Nike like ? and openid=?
select Nike, id, unionid, openid from user where Nike like ? and openid<?
我们的查询语句中指定了4个返回的值,也就是说会返回4个列。在Variable Names 设置A,B,C,D
。A
保存第一列的数据,B
保存第二列的数据以此类推。那么如下变量会被设置为。
A_#=2 (总行数) A_1=第1列, 第1行 A_2=第1列, 第2行 C_#=2 (总行数) C_1=第3列, 第1行 C_2=第3列, 第2行
如果返回结果为0,那么A_#
和C_#
会被设置为0,其它变量不会设置值。如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。可以使用可以使用${A_#}, ${A_1}...来获取相应的值
使用Beanshell Sampler 输出结果:
日志结果:
请求返回的结果:
vars.getObject("result").get(0).get("Nike")
获取值
输出语句:
执行结果:
__jexl3()
执行vars.getObject("result").get(0).get("Nike")
原文:https://www.cnblogs.com/xiehong/p/12221071.html