JMeter一直用于对应用的API进行压力测试,但事实上也可以利用它来压测数据库一些特定的SQL来测试性能问题及优化参数调整,以下将描述使用JMeter进行数据库压测的过程。
0.总体配置
本测试线程组使用了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驱动包,下文会介绍。
2.添加JDBC驱动包
如果将驱动jar包拷贝至lib目录下无法识别的话,可以通过【测试计划】窗口的以下选项添加相对应的JDBC驱动包。
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数据文件设置”里的变量名称一致;
4.CSV数据文件设置
如上述sql需要传入指定的id值,你先需要准备一个csv文件,填入一列的id值,并做以下的配置:
(1)文件名:csv文件的位置;
(2)文件编码:一般为utf-8即可,*需要注意的是,如果你的变量含有中文的话,csv文件编码格式需要另存为utf-8格式,否则会出现乱码。
(3)变量名称:如果csv文件中有多列变量,可以设置多个变量名称并以逗号分隔开,此变量名与测试SQL中用到的变量名一致;
(4)其他参数根据实际需要进行调整。
5.添加监视器并开始测试
这没什么好说的,将【查看结果树】、【聚合报告】、【用表格察看结果】一并添加上去即可(吐糟一下,这个汉化真不咋地~),就可以开始压测了。
测试的结果姑且不做额外的说明。