JMeter如何从数据库中获取数据并作为变量使用?

目录

前言

1、JMeter连接MySQL数据库

2、线程组下新建一个 JDBC Connection Configuration 配置元件

3、实现数据库的查询-单值引用

4、实现数据库的查询-多值引用

总结:


前言

JMeter如何从数据库中获取数据并作为变量使用?这在我们使用JMeter接口测试压力测试时经常碰到,今天通过两个示例(实现MySQL数据库的查询结果的单值引用多值引用)进行说明。这里虽然以MySQL数据库做说明,但实际其他数据库连接使用与之类似。

1、JMeter连接MySQL数据库

首先得下载mysql jdbc驱动包 mysql-connector-java.jar (注:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于MySQL版本有可能会导致连接失败报错)。把该jar放置于 [JMeter安装目录]/lib 下

JMeter如何从数据库中获取数据并作为变量使用?_第1张图片

也可以在 测试计划 中,通过 Add directory or jar to classpath 添加 mysql jdbc 驱动包

JMeter如何从数据库中获取数据并作为变量使用?_第2张图片

 Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

JMeter如何从数据库中获取数据并作为变量使用?_第3张图片

 

2、线程组下新建一个 JDBC Connection Configuration 配置元件

详细配置如下图:

JMeter如何从数据库中获取数据并作为变量使用?_第4张图片

配置说明(红色框内为需要配置的值,其他保持默认即可):
1)Variable Name:数据库连接池的变量名,最好填写一个有实际意义的名称,后面JDBC request调用需要使用;
2)Database Connection Configuration:数据库连接配置,需要根据实际数据库部署情况配置:
Database URLjdbc:mysql://host:数据库端口/数据库名称
注意:
①host可以为域名或IP地址,如果后面不填入端口,则默认端口为3306;
②之所以在数据库名称后加入 ?allowMultiQueries=true ,是为了在JDBC Request中支持多条SQL操作,如要执行多条select、或update等SQL操作。
JDBC Driver class:因为连接MySQL数据库,所以选择 com.mysql.jdbc.Driver
常见数据库Database URL 和 JDBC Driver class配置如下

JMeter如何从数据库中获取数据并作为变量使用?_第5张图片

Username 和 Password:为数据库的用户名和密码。

3、实现数据库的查询-单值引用

1)在 简单控制器 添加Sampler JDBC Request,并添加监听器 查看结果树 方便查看执行结果。

JMeter如何从数据库中获取数据并作为变量使用?_第6张图片

JDBC Request说明:
①填写 基础配置(即 JDBC Connection Configuration) 里的变量,保持一致即可;
②查询类型选择:Select Statement;
③查询语句,根据实际需求填写;
④查询结果值引用变量,随意填写,能表达字段意思即可。

2)执行查询动作

JMeter如何从数据库中获取数据并作为变量使用?_第7张图片

3)查询结果值引用
我们查询数据库的目的是为了引用查询的结果,即:testui,admin,Eva_208,Eva_208,Eva_208,Eva_208,Eva_208,Eva_208

引用第1个变量(有多少条查询结果,即有多少个变量)

JMeter如何从数据库中获取数据并作为变量使用?_第8张图片

说明:
①引用变量的方法,${变量名_数字} ,这里的数字为查询结果的第几条记录数,以 开头,这里引用第一个则为: ${author_1}

JMeter如何从数据库中获取数据并作为变量使用?_第9张图片

 Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

JMeter如何从数据库中获取数据并作为变量使用?_第10张图片

 

引用第2个变量

JMeter如何从数据库中获取数据并作为变量使用?_第11张图片

JMeter如何从数据库中获取数据并作为变量使用?_第12张图片

发现这样每次引用变量都要修改一下数字,不是很方便,有没有自动增长的引用方法呢?

解决办法:添加 计数器(选中 [ 逻辑控制器 ] 右键->添加->配置元件->计数器),我们需要的值是根据 ${变量名称_N} 来取的,这个N通过计数器递增的方式获取。具体用法,参考JMeter专题后续文章。

4)统计查询结果数量

JMeter如何从数据库中获取数据并作为变量使用?_第13张图片

说明:
①查询结果数量统计,${变量名_#} 。要统计author的结果数量,所以为: ${author_#} 

JMeter如何从数据库中获取数据并作为变量使用?_第14张图片

4、实现数据库的查询-多值引用

1)查询结果存在多个字段时,值怎么引用

JMeter如何从数据库中获取数据并作为变量使用?_第15张图片

2)引用方法

JMeter如何从数据库中获取数据并作为变量使用?_第16张图片

说明:
①引用方法一样,${变量名_数字},如:${author_1} ,${fid_1}
多个变量之间,用英文逗号 分隔

3)查询结果

JMeter如何从数据库中获取数据并作为变量使用?_第17张图片

说明:
①引用的是第二行的,第一列的第二个值和第2列的第一个值;
②打印结果与数据库查询结果一致;

 Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

JMeter如何从数据库中获取数据并作为变量使用?_第18张图片

 

你可能感兴趣的:(接口测试,数据库,jmeter,mysql,自动化测试,测试工具)