使用Apache JMeter进行数据库压力测试
学习使用Jmeter对数据库进行压力测试。JMeter中称之为测试计划!
JMeter的一个测试计划,包括:线程组、数据库连接、前置处理器、Sampler、后置处理器、监控结果等。
1.添加线程组:在测试计划上点右键,选择:添加》Threads(Users)》线程组;
2.添加JDBC Connection Configuration: 在线程组上点右键,选择:添加》配置元件》JDBC Connection Configuration;
3.添加前置处理器:在线程组上点右键,选择:添加》前置处理器》JDBC PreProcessor;
4.添加Sampler:在线程组上点右键,选择:添加》Sampler》JDBC Request;
5.添加后置处理器:在线程组上点右键,选择:添加》后置处理器》JDBC PostProcessor;
6.添加监控结果:在线程组上点右键,选择:添加》监听器, 可以使用 Summary Report、图形结果、用表格查看结果、监视器结果等等。
7.添加Random Variable:添加》配置元件》Random Variable;
可以设置上下级关系。
首页:
在测试计划的首页,设置计划名称、添加所用到的jar包、设置用户自定义变量
设置自定义变量时,使用单引号
线程组:
设置并发的线程数为:3,每个线程循环册数为:1 。 调度器可以设置计划开始、结束时间。
JDBC Connection Configuration:
Sybase ASE和IQ数据库的连接串为:
Database URL: jdbc:sybase:Tds:10.233.69.103:6000/tpchdb?IS_CLOSED_TEST=INTERNAL
JDBC Driver Class: com.sybase.jdbc3.jdbc.SybDriver
可以使用事务模式、隔离级别;Max Number of Connections设置连接池的大小;
使用Variable Name对数据库连接进行命名,后面的JDBC Request中需要设置。
JDBC Request
设置Variable Name为配置的数据库连接名称
SQL Query的Query Type主要包括:Select 、Update、Callable Statement、Commit、Rollback等。
一、多个查询语句(不使用参数的情况下)可以放在一起顺序执行,需要设置Query Type为:Callable Statement,然后顺序输入select语句,不用加go或者分号。如果Query Type设置为:Select Statement的话,只执行第一个SQL语句。
二、如果SQL语句中需要使用参数变量,那么Query Type 需要设置为:Select Statement ,需要先添加Random Variable,然后在Parameter Values中输入${变量名称},${变量名称};
在Paramter types中输入变量的数据类型。 如下图示:
中间用逗号分隔。只能执行第一个SQL语句。
对于Insert、Update、Delete语句,需要设置Query Type为:Update Statament.数据修改语句中可以使用参数,而且可以顺序执行多个修改语句。
定义随机数变量:
Output Format设置成:00000 表示数字形式。
用表格查看结果:
所有数据写入一个文件,将测试的执行结果保存文件中, 点浏览按钮设置文件名称。点Configure按钮设置保存文件中的内容。
查看日志:
选项》Log Viewer
保存窗口截图:
编辑》 Save Node as Image , Save Screen AS Image 将屏幕截图另存。