Jmeter的数据库JDBC组件

·在测试工作中,需要用到数据库的场景有哪些?

·测试数据的制造。

·查询数据,用于测试的输入。

·查询数据,用来检测业务结果是否准确。

·对sql语句进行性能测试。

·Jmeter如何去操作数据库?

Jmeter是一款基于java语言开发的工具,它操作数据库的方式主要是JDBC方式。

需要用到的组件有四个:

·JDBC Connection Configuration:JDBC连接配置组件。属于必选组件,根据需要可以添加多个。。

·JDBC Request:JDBC请求。用于操作数据库。

·JDBC PreProcessor:JDBC前置处理器,作用和JDBC请求类似,只是运行在请求之前。

·JDBC PostProcessor:JDBC后置处理器,作用和JDBC请求类似,只是运行在请求之后。

·Jmeter操作数据库的准备工作:

·准备JDBC驱动的jar包:

去所需要操作的数据库官网下载对应的JDBC驱动包(jar包),下载之后解压将jar包放入到jmeter的lib目录。

到mysql的官网下载数据库驱动包:

访问网站https://www.mysql.com/downloads/,在网页的下面找到“Mysql Community (GPL) Downloads”,进入

下载Connector/J:

根据自己的操作系统下载对应的包:

我是用的是Mac,所以下载了下面这个:

解压后将mysql-connector-java-8.0.22.jar放入了apache-jmeter-5.3/lib目录下,然后重启Jmeter。

·获取数据库相关的信息:

数据库的地址:ip地址,比如10.10.10.244

用户名:root

密码:123456

数据库名:testingedu

表信息:和sql有关。

JDBC Connection Configuration:

在线程组下面添加JDBC Connection Configuration的组件,用于配置需要使用的Mysql数据库信息:

可以查找Jmeter安装目录下面的 apache-jmeter-5.3/printable_docs/usermanual/component_reference.html#JDBC_Connection_Configuration配置说明来填写:

·Variable Name:变量名称,是用来存储连接配置信息,即连接的别名。后续的JDBC请求、前置后置处理器都需要用到该变量名,表示使用对应的连接去连接操作数据库。

·DatabaseURL:是用来指定需要连接的数据库的JDBC的URL地址。

PS:不同的数据库的写法和参数是不一样的。

·JDBC Driver class:JDBC驱动类的package,选择即可。

比如说mysql数据库:

jdbc:mysql://host[:port]/dbname

实际就是:

jdbc:mysql://10.10.10.244:3306/testingedu

·username:数据库的用户名

·password:密码

PS:在mysql中,用户名和访问地址是有关的。

·JDBC request:

·Variable name:变量名称,该处填写的是我们在JDBC Connection Configuration中所设置的变量名称,表示使用对应的连接配置中所填写的信息去连接和操作数据库。

·Query type:请求类型,要求实际执行的SQL语句的关键字和所选择的请求类型匹配。

可供选择的请求类型及其对应的SQL关键字如下:

·select statement:select类型,对应的关键字为:

select

·Update statement:update类型,对应的关键字为:

create/alter/drop 针对结构

insert/update/delete 针对数据

·callable statement:该类型支持所有的关键字,但是实际中主要是用于存储过程的调用。

·Prepared select statement:前置select类型,又叫批量select类型,所支持的SQL关键字和select statement一致。

·Prepared update statement:前置update类型,又叫批量update类型,所支持的SQL关键字和update statement一致。

对于Prepared类型来说,是支持在SQL语句中通过问号来实现传参的。一旦SQL语句中有问号,则需要用到下方的两个Parameter选项。

·Parameter values:参数值,是用于传递给带问号的SQL中问号的。

参数值可以有多个,使用逗号进行分隔。

参数值将按照顺序一一传递到SQL中的问号(所在的位置)。

·Parameter type:参数类型。

参数类型可以有多个,使用逗号进行分隔。

参数类型的顺序、数量要求和参数值的顺序、数量保持一致。

·Variable Names:变量名称,该处可以指定变量名称用来存储查询语句的结果。

·变量名称可以有多个,使用逗号进行分隔。

·一个变量只能存储结果中的一列值,变量是按照顺序和查询结果一一对应,即第N变量存储查询结果中的第N列值。

·存储采用的是类似于数组的方式。

效果为:

Vname_1=value1,Vname_2=value2,...,Vname_N=valueN

使用变量来传递SQL语句中的参数,Jmeter会提前编译sql语句,效率比较高,也是就是会预编译。

·JDBC前置处理器和JDBC后置处理器的选项和JDBC请求是完全一致的,区别在于:

·JDBC请求执行过程可见,会被统计。

  JDBC前置和后置处理器只是辅助类型组件,执行过程不可见,不会纳入统计。

·JDBC前置和后置处理器的执行时机不同。

提取器:JDBC Request

此取样器允许您将JDBC请求(SQL查询)发送到数据库。

后置处理器:JDBC PostProcessor

JDBC后置处理程序使您可以在样本运行后立即运行一些SQL语句。如果JDBC样本更改了某些数据,并且您希望将状态重置为JDBC样本运行之前的状态,那么这将非常有用。


JDBC Preprocessor查出来的数据为啥foreach 读不出来呢,JDBC request查出来的数据foreach 就能数出来?我也不知道。刚开始学习Jmeter

你可能感兴趣的:(Jmeter的数据库JDBC组件)