JMeter如何操作数据库
JMeter是一款java应用,使用的是JDBC方式去连接和操作数据库,在JMeter中,和数据库操作有关的组件有四个:
JDBC Connection Configuration:JDBC连接配置组件,属于必选组件
JDBC request:JDBC请求组件,是用来通过jdbc方式去请求数据库的
JDBC preprocess:JDBC前置处理器,一般用于用例步骤的数据准备
JDBC postprocess:JDBC后置处理器,一般用于用例预期结果的数据准备
准备工作
JDBC驱动包,JMeter本身是不提供数据库的JDBC驱动包,需要去数据库的官网下载。不同类型数据库的JDBC驱动包是不一样的,同一数据库的不同版本对于JDBC驱动的版本也可能有不同要求
一般来说,下载之后需要解压,获取到一个*.jar文件
数据库信息,包括
数据库的地址
用户名
密码
数据库名
表名,业务相关的必须知道
JDBC Connection Configuration,JDBC连接配置组件
variable Name,变量名称,是用来存储连接配置的,由用户自定义,建议有意义即可
Connection pool,连接池设置,除非做性能测试,否则该处不用调整
Database connnection,数据库连接设置
Database URL,数据库连接地址
不同类型的数据库,连接地址的写法不一样,可以通过JMeter的帮助文档、互联网搜索和询问开发等方式获取
JDBC Driver Class,驱动类,选择和数据库类型相关的即可
username,数据库连接的用户名
password,密码
JDBC Request,JDBC请求
Variable Name,该处填写在JDBC连接配置组件中所设置的变量名称,表示对应的JDBC连接配置
Query Type,请求类型,要求所选类型和实际请求的sql语句类型保持一致
Select statement,Select类型,支持的关键字有select
Update statement,Update类型,支持的关键字有create/alter/drop,insert/update/delete
Callable statement,Callable类型,支持几乎所有的sql关键字,一般主要在这里进行存储过程的调用
JMeter层面的参数化处理,就是用JMeter的变量调用、函数调用字符串去替代SQL语句中的值,不包括单引号之类。
Prepared Select statement,前置Select类型,所支持的SQL关键字和Select类型是一致的
Prepared Update statement,前置Update类型,所支持的SQL关键字和Update类型是一致的
Prepared types,Prepared类型,表示支持SQL语句中通过问号作为占位符来实现参数的传递,在实际运行中,这种方式会进行预编译。参数值的传递和以下两个parameter选项有关:
1)Parameter values,参数值,是用来传递值给prepared类型的SQL语句中的问号的,多个参数值使用逗号分隔,并且数量、顺序和类型要求和SQL语句中的语义保持一致
2)Parameter types,参数类型,用于描述参数值,多个参数类型使用逗号分隔,参数类型的数量、顺序要求和参数值保持一致,常见的参数类型有
varchar,字符串型
integer,整型
variable names,变量名称,是复数,表示将查询结果存入指定的变量中
变量名称可以有多个,使用逗号进行分隔
变量名称是按照顺序去存储查询结果中的值,一个变量存储一列值,这就意味着要保证变量名称的数量和查询结果列数的一致性
值的存储采用类似于数组的方式存储,例如变量名_1=value_1,...,变量名_N=value_N