JMeter一直用于对应用的API进行压力测试,但事实上也可以利用它来压测数据库一些特定的SQL来测试性能问题及优化参数调整,以下将描述使用JMeter进行数据库压测的过程。

0.总体配置

【DB2】JMeter数据库压测_压力测试

本测试线程组使用了csv文件作为输入参数。

1.配置JDBC Connection Configuration

主要调整的参数说明如下:

(1)Variable Name fir created pool:JDBC连接池的名称,后续SQL执行时需要使用到此名称;

(2)Max Number of Connections:连接池连接的最大数量,根据需求进行调整,但不是越大越好的;其他连接池的参数设置根据需要进行调整,一般默认也足够了。

(3)Validation Query:如果默认的"select 1"不支持你的DB,可以随便自定义一个简单的可正确返回的SQL用于可用性验证;

(4)Database URL:填入JDBC的连接URL;

(5)JDBC Driver classs:选择指定的JDBC驱动,但还需要将驱动jar拷贝到JMeter下的lib目录,但不知道为什么我拷贝进去的驱动jar包无法被识别到,所以使用另外一种方式添加DB2的JDBC驱动包,下文会介绍。

【DB2】JMeter数据库压测_压力测试_02

2.添加JDBC驱动包

如果将驱动jar包拷贝至lib目录下无法识别的话,可以通过【测试计划】窗口的以下选项添加相对应的JDBC驱动包。

【DB2】JMeter数据库压测_压力测试_03

3.JDBC Request配置

这里配置的一个update的语句,主要配置的参数如下:

(1)Variable Name of Pool declared in JDBC
Connection Configuratior:填上上述步骤1的JDBC连接池的名称;

(2)Query Type:根据测试SQL的类型进行选择即可;

(3)Query:填入要测试的SQL语句,如果需要批量传入指定参数的话,使用${PARAM}的形式表示参数,后续将说明使用csv配置传入参数的做法。其中PARAM的名称与“CSV数据文件设置”里的变量名称一致;

【DB2】JMeter数据库压测_jmeter_04

4.CSV数据文件设置

如上述sql需要传入指定的id值,你先需要准备一个csv文件,填入一列的id值,并做以下的配置:

(1)文件名:csv文件的位置;

(2)文件编码:一般为utf-8即可,*需要注意的是,如果你的变量含有中文的话,csv文件编码格式需要另存为utf-8格式,否则会出现乱码。

(3)变量名称:如果csv文件中有多列变量,可以设置多个变量名称并以逗号分隔开,此变量名与测试SQL中用到的变量名一致;

(4)其他参数根据实际需要进行调整。

【DB2】JMeter数据库压测_压力测试_05

5.添加监视器并开始测试

这没什么好说的,将【查看结果树】、【聚合报告】、【用表格察看结果】一并添加上去即可(吐糟一下,这个汉化真不咋地~),就可以开始压测了。

【DB2】JMeter数据库压测_jmeter_06

【DB2】JMeter数据库压测_压力测试_07

测试的结果姑且不做额外的说明。