今天这篇主要是使用Jmeter测试数据库的性能。
在测试之前,需要准备数据库文件,即需要有一个table,本例中使用的是MySQL数据库,已有数据文件:testjmeter(database name)--> testjdbc(table name),主要操作是数据的删除、插入和查询。
一、打开Jmeter,首先需要添加JDBC Connection Configurations,
1. 添加步骤如下图:
[图1:右击测试计划-->添加-->配置元件-->JDBC Connection Configuration]
2. 添加完毕,需要对JDBC Connection Configuration进行配置,如下图:
[图2:JDBC Connection Configuration的配置,未红色标出的保持默认]
3. 接着建立线程组,因为这里有删除、插入和查询,而且删除用truncate只需要执行一次即可,所以可以是顺序删除 -->插入 -->查询,所以这里把删除的操作放在setUp Thread Group里,插入放在普通的线程组里,查询放在tearDown Thread Group里(注:truncate是删除表中所有数据,比delete删除的操作的更快).
(1)truncate操作,在setUp Thread Group下建立JDBC Request,如图:
[图3:右击setUp Thread Group-->添加-->Sampler-->JDBC Request]
[图4:JDBC Request_truncate操作的设置]
(2)insert操作,在Group下建立JDBC Request(建立方法同图3),
[图5:建立JDBC Request]
[ 图6:函数助手的使用]
(3)select操作,在tearDown Thread Group下建立JDBC Request(建立方法同图3).
[图7:JDBC Request_select操作的设置]
(4)这里如果不需要设置postprocessor观察数据,可以直接添加监听器运行即可,但是这里又添加了一个后期处理器BeanShell PostProcessor。用来把查询的结果显示在log上,
[图8:右击JDBC Request-->添加-->后期处理器-->BeanShell PostProcessor]
[图9:beanshell postprocessor的编写]
(5)点击运行,结果如图:
[图10:运行结果]
二、如果需要测试两个数据库里面的文件,只需要再添加一个JDBC Connection Configuration,再添加JDBC Request即可,注意JDBC Request里面的variable name一定要选择需要的数据库的JDBC Connection Configuration上面设置的Variable name。
下面截图的数据文件:testjmeter(database name)--> Myclass(table name),不是不是同一个数据库,只需要改变数据配置中的数据库名字即可,这里示例的是同一个数据库,原理相同(其实只有不同的数据库时才需要不止一个JDBC Connection Configuration文件,如果属于同一个数据库,只需要在JDBC Request中把sql语句的表名改变即可)
[图11:第二个表的JDBC Connection Configuration的配置]
[图12:JDBC Request的配置,注意相对应的variable name]