Jmeter 除了可以发起Http请求,还支持多种协议,可对数据库和中间件发起请求。通过和数据库的交互,Jmeter可以实现接口测试和性能测试的数据准备,数据校验。Jmeter支持多种类型的数据库,只要在引入数据驱动的时候加载不同的驱动包和数据库连接信息即可。本文以Mysql为例详细描述Jmeter如何处理数据库,包含以下知识点:
-
Jmeter如何配置数据库连接
-
Jmeter如何发起数据库请求, 包括只读请求和更新请求
-
Jmeter如何发起带变量的数据库请求
-
Jmeter如何存储数据库返回的结果,将其保存为变量供后续使用
Jmeter的核心数据库组件有:JDBC Connection Configuration(数据库连接配置)和JDBC Request(数据库请求)
一、环境准备
a、jmeter5.1.1版本最新版本,可以去网页下载:https://jmeter.apache.org/download_jmeter.cgi
b、jdbc驱动:链接:https://pan.baidu.com/s/1n1hY6RQcoYDHUuKMFMbg3g 提取码:8tr1
下面进入正文:
1、首先,我们在测试计划下,把JDBC驱动包添加上,也可以将驱动包放入jmeter的lib目录下,即可自动加载。
2、然后,新建一个线程组→JDBC Connection Configuration(连接数据库组件)→JDBC Request(JDBC请求)
3、接下来,配置JDBC Connection Configuration。
JDBC Connection Configuration是用于配置数据库连接信息的,主要有如下选项:
-
Variable Name Bound to Pool: 数据库连接名,JDBC Request通过此变量名定义要查询的数据库
-
Database Connection Configuration:
数据库连接信息(连接URL,Driver类,用户名,密码)
-
Connection Pool Configuration:
线程池配置,多线程运行时的性能配置,接口测试采用默认配置
-
Connection Validation by Pool:
连接池验证信息,采用默认值即可
Ps 下面介绍比较重要的几个参数其他地方可照截图配置即可。
Variable Name:连接名称,自定义填写。
Validation Query:验证查询,不同版本的填写格式可能不同(比如3.1是Select 1,2.6是Select1),格式错误会报错。最新的Jmeter5.1.1下拉框可选择。
Database URL:数据库url,格式固定。
jdbc:mysql://{ip}:{port}/{dbname}?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
jdbc:mysql:// 表明连接的数据库是mysql
ip 数据库服务器地址
port mysql端口号
dbname 数据库名称
useUnicode=true 使用Unicode编码格式(字符集编码格式)
characterEncoding=utf8 使用UTF-8解码(字符集编码格式)
allowMultiQueries=true 允许多个query一起使用(1个请求中添加多个sql语句)
D
配置完毕,接下来填写JDBC请求
Variable Name:与JDBC Connection Configuration中的Variable Name保持一致
Query Type:语句类型,查询用select,增删改用update,一起用可以选择callable
-
Select Statement: Select语句
-
Update Statement: Insert/Update/Delete 语句
-
Callable Statement:回调语句
-
Prepared Statement:预编译语句
-
Commit:提交
-
Rollback:回滚
-
AutoCommit:自动回滚
Query:填写对应的语句(这里用了一个简单的查询语句作为示例)
-
当编写的是Select语句时,QueryType需要选择Select Statement
-
当编写的是Update语句时,QueryType需要选择Update Statement
-
当编写的语句带变量时,QueryType需要选择Prepared Statement
variable name:变量名
以上就已经完成一个jdbc的请求了,可以添加察看结果树,看是否成功。