Jmeter入门(7)- 连接数据库
配置/使用,以MySQL为例
一、导入数据库(MySQL)的jar包
1. 连接数据库,需要引入外部的jar包
1.1. 下载地址:https://dev.mysql.com/downloads/
1.2. 选择:Connector/J,进入页面

1.3. 点击下载压缩包

1.4. 不登录,直接选择 No thanks, just start my download.

2. 解压,将jar包放到jmeter的lib目录下
3. 重启jmeter
二、连接数据库配置(JDBC Connection Configuration)
位置:线程组右键 ==> 添加 ==> 配置元件 ==> JDBC Connection Configuration

配置说明:
-
Variable Name for create pool:数据库的名称 -
Database Connection Configuration连接数据库相关参数配置说明,如下:
-
Database URL:数据库连接地址
格式:jdbc:<数据库类型>://<数据库链接地址>:<数据库端口号>/<数据库名>
例:jdbc:mysql://127.0.0.1:3306/testdb -
JDBC Driver class:JDBC Driver需要在 测试计划 中进行导入
使用的是什么数据库就选择什么驱动进行链接,例:com.mysql.jdbc.Driver
在测试计划页面,选择解压好的lib目录下的jar包


-
Username:连接数据库的用户名 -
Password:连接数据库用户的密码
-
三、发送数据库请求(JDBC Request)
可以将JDBC请求(SQL查询)发送到数据库
位置:线程组右键 ==> 添加 ==> 取样器 ==> JDBC Request
配置项的含义及解释
| 配置项 | 说明 |
|---|---|
| Variable Name of Pool declared in JDBC Connection Configguration | 与JDBC Connection Configuration中的Variable Name for create pool保持一致 |
| Query Type | 查询类型 |
| Query | sql语句 注:sql语句后面不需要加 ;变量用 ?占位例:select * from users where user_name ='xxx' |
| Parameter values | 需要传递的变量值 多个变量用 ,隔开 |
| Parameter types | 变量类型 例:字段数据类型,varchar |
| Variable Names | 保存sql语句返回的数据和返回数据总行数 用 ,隔开跳过列为空 |
| Result Variable Name | 创建一个对象变量,保存所有返回的数据 |
| query timeout(s) | 超时时间 默认为0,代表无限时间 |
| Limit ResultSet | 和 limit 类似作用,限制 sql 语句返回结果集的行数 |
| Handle ResultSet | 定义如何处理callable statements语句返回的结果 默认是存储为字符串 |
添加Debug Sampler
添加Debug Sampler,可以查看变量的数据,方便调试
位置:线程组右键 ==> 添加 ==> 取样器 ==> Debug Sampler
运行测试的例子
1. 只有sql语句的情况

运行结果

2. 将sql语句进行参数化

运行结果和上面相同
注意:
- sql语句中的变量使用
?占位,可以避免SQL注入的问题 - sql使用占位符时,
Query Type必须选择Prepared Select Statement或者Prepared Update Statement Parameter value、Parameter type填写值的数量要保持一致,用,分隔
3. 变量和参数化结合

用户定义变量

运行结果

注意:sql语句中使用变量时,如果是字符串需要加上引号
4. Variable Names的使用
可以将sql语句查询出的数据进行提取

运行结果

调试取样器-查看提取的数据

解释:
- a_#、b_#、d_#表示的是获取的数据的总条数
- a_1:第一列第一行的数据
- a_2:第一列第二行的数据
- b_1:第二列第一行的数据
- b_2:第二列第二行的数据
注意:
Variable Names跳过列为空,例:a,b,,d- 如果返回结果为0,那么a_#、b_#、d_#会被设置为0,其它变量不会设置值
- 可以通过
${变量名_#}来获取总条数 - 可以通过
${变量名_n}来获取变量名所在的列的第n行的值,例:${a_1}获取第一行第一列的值
5.Result variable name的使用
设置一个变量名,将返回的结果赋值给这个变量

调试取样器-以一个对象的形式返回所有数据

官网参考文档:https://jmeter.apache.org/usermanual/build-db-test-plan.html#building
发送数据库请求(JDBC Request)报错参考:https://www.cnblogs.com/colorfully/p/13870280.html

浙公网安备 33010602011771号