jmeter 之连接数据库
jar包下载地址
https://dev.mysql.com/downloads/connector/j/5.1.html
然后将jar包放在jmeter安装的lib目录下
jmeter连接数据库和提取数据库返回值
一、在MySQL命令行中,验证MySQL是否能正常登陆。若不能登陆,则重置MySQL的密码。
二、下载mysql-connector-java-5.1.45-bin.jar,将其放入Jmeter安装目录的lib目录下。完成MySQL数据库的驱动。
三、右键“线程组”->“配置元件”->“JDBC Connection Configuration”,进行JDBC连接配置。
四、以MySQL数据库为例,配置JDBC: Driver class: com.mysql.jdbc.Driver
Database URL: jdbc:mysql://localhost:port/{dbname}
五、JDBC Request配置,右击”线程组”,添加一个”JDBC Request”,添加”察看结果树”。
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
Query:填写的sql语句未尾不要加“;”
Parameter valus:参数值
Parameter types:参数类型
Variable names:保存sql语句返回结果的变量名
Result variable name:创建一个对象变量,保存所有返回的结果
Query timeout:查询超时时间
六、运行该线程组,”察看结果树”显示为下图所示的界面,则连接MySQL数据库成功。
七、Variables names参数使用
variables names设置为A,,C,那么如下变量会被设置为:
A_#=2 (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (总行数)
C_1=第3列, 第1行
C_2=第3列, 第2行
如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
可以使用${A_#}、${A_1}...来获取相应的值。
示例:
有一张表有3个字段,4条记录
1)添加一个jdbc request名为select4,添加一个Debug Sampler用来查看输出的结果,设置 variables name为a,b,c:
2)执行结果:
案例:现在有个登录请求,需要从MySQL数据库中取出用户登录表中的username字段作为参数,实现参数化关联。
1、 添加JDBC Request
2、在http请求中加入变量
username_id_N:N为数字,指取第几个数
3、添加察看结果树
4、添加循环控制器,“线程组”->“逻辑控制器”->“循环控制器”
5、将登录请求放入到循环控制器下,另外添加一个计数器,因为我们取的值是根据${username_N}来取的,那么这个N可以通过计数器递增的方式获得。
“循环控制器”->“配置元件”->“计数器”
6、通过函数助手获取嵌套函数 __V
7、运用在登录请求的参数中
最后执行登录请求,查看结果。