涉及到的Jmeter模块如下:
JDBC Connection Configuration
JDBC PreProcessor / JDBC Request
Debug Sampler
View Results Tree
前言
做接口测试时,经常碰到需要从数据库中查取指定的值作为请求参数。或者请求结束后,如有结果写入数据库,需要查看数据库中指定的结果是否为期待值。此时就需要使用Jmeter对数据库进行一些操作:
1. 连接访问数据库
2. 使用sql语句查询出指定的结果
3. 对查询结果做进一步处理
连接数据库
1. 下载mysql数据库jar包,下载地址:
https://dev.mysql.com/downloads/connector/j/
jia
建议放置到Jmeter路径lib文件夹下:…\apache-jmeter-4.0\lib
2. Jmeter Test Plan处导入下载好的mysql jar包
3. Test Plan下添加线程组,线程组下添加JDBC Connection Configuration
4. .配置 JDBC Connection Configuration, 指定要连接的数据库。
注意Variable Name for created pool处一定要指定一个名字,后续进行数据库请求时,通过此名字可以直接知道请求的是此处配置好的数据库
请求数据库
5. 线程组添加JDBC Request, 或根据需求某个HTTP请求下添加JDBC PreProcessor(或JDBC PostProcessor)
6. 配置数据库请求。主要是设置查询类型,查询语句,并指定查询结果存放到哪个变量中。
注:
- 使用多个sql语句时,JDBC Connection Configuration中的数据库URL末尾要追加参数?allowMultiQueries=true
-
Variable names保存sql返回的数据和总行数。
示例中sql返回2行3列数据,设置变量名为handle_id,则以下变量会被设置:
handle_id_#=2 (总行数)
handle_id_1=第1列第1行
handle_id_2=第1列第2行
7. 使用数据库中查询出的结果。使用${变量名}来访问指定的值。
如下图,HTTP Request中使用
${handle_id_1}获取
数据库中指定值(查询结果的第一列第一行,作为HTTP请求的参数)
8. 通过添加Debug Sampler,可以查看数据库连接的具体情况及各变量值。