在昨天Jmeter配置元件——CSV DataSet Config参数化一文中,有提到,在参数化时,还可以使用JDBC Connection Configuration配置元件实现,具体如何实现,如何操作,且听详解。
jar包下载
在Jmeter 中想用到连接数据库的功能,必须下载jar包,下载地址。
下载好了jar包,如何使用呢?使用方式有二。
其一:下载的jar包保存在非Jmeter的lib下的ext目录下,则需要在Jmeter工程中测试计划元件下指定jar包路径,如下图所示;
其二:下载的jar包保存在Jmeter的lib下的ext目录下,则不需要做其他的配置了,也不用担心以后给其他电脑copy文件,忘记copy某个文件夹了【个人推荐这一种方式】
基础配置
我们首先来看界面,如下所示:
根据上图来了解,我们可以把配置界面分成五部分:
1,名称和注释,可随便填写;
2,Variable Name for created pool,Variable Name是定义变量名。填写一个变量名,需要和用到的JDBC request,或者JDBC PreProcessor,或者JDBC PostProcessor中的变量名一致。可知,一个测试计划中可以绑定多个DB源;
3,Connection Pool Configuration,关于数据库连接池的配置,在一般使用中,默认即可;但是想压测,单独负载测试DB,想找出DB最适合的连接池,就要稍加注意;
4,Connection Validation by Pool,在一般使用中,默认即可,Validation Query 一般选择 select 1;
5,Database Connection Configuration,数据库连接配置,在这里着重讲解。数据库连接的配置,将数据库url/port/db name/用户名和密码等填入。jmeter还支持以下几种连接方式:
参数化
参数化一:正则表达式提取
使用JDBC Request请求方式,查询数据,并使用正则表达式提取唯一值,实现参数化,脚本实现如下:
运行脚本,查看结果,如下所示:
参数化二:引用JDBC Request请求变量名
在JDBC Request请求中,配置变量名,配置如下:
运行脚本,查看结果,数据库查询到2个name值,如下:
通过Debug Sampler查看到2个name分别对应的变量名为:
所以脚本参数化调整如下并运行:
参数化三:变量名循环
我们在参数化方式二中,通过Debug Sampler查看,有个变量为name_#的字段,由于查询到2个值,所以等于2,。如果数据库中有很多数据,而且要一一参数化的情况下,难道我们要重复写那么多次的接口吗?答案当然不是,可以引用name_#字段,做为循环次数即可,我们来细看。
①增加循环控制器
我们先增加一个循环控制器,并引用变量值,配置如下:
②增加计数器
再增加一个计数器,定义每次递增值,而来控制循环次数,配置如下:
③引用变量名
按以前引用写法,可能会直接写${name_${name}},但是jmeter中不支持这种写法,所以在这里,需要引进另一个函数,${__V()},参数引用如下:
④查看结果
运行脚本,查看结果如下:
以上就是今天分享的参数化内容了,我们可以看出,方式三更适用于实际业务当中,个人也推荐这种方式。
本文仅代表作者观点,系作者@温一壶清酒发表。
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
文章出处:http://www.cnblogs.com/hong-fithing/