jmeter可以进行对数据库的操作,mysql、oralce、sqlserver都能支持。那我们如何来通过jmeter进行数据库的操作呢?
一、下载对应数据库的驱动jar包,已mysql为例:
1、登录官网:MySQL,点击downloads
2、点击MySQL Community (GPL) Downloads »
3、选择对应的类型,然后下载
4、下载后,把包解压,然后放到jmeter的apache-jmeter-5.4.1\lib\ext目录下。
二、使用之前,需要先建一个JDBC 连接配置,配置的属性值在项目的数据库配置文件中都有,按照实际配置就行。
三、创建JDBC 请求,JDBC请求可以将 JDBC 请求(SQL 查询)发送到数据库进行实际的数据库操作。
这里Query Type选择说明下:select语句对应Select Statement、update/insert/delete对应Update Statement、
Prepared表示在sql语句中的参数可以从参数Parmeter values中取,Parmeter values定义参数的类型。
Prepared Update Statement用于update/insert/delete、Prepared Select Statement用于查询。
四、对查询的数据进行提取、参数化等操作。
1、先了解下Variable names和Result variable names,
Variable names:以逗号分隔的变量名称列表,用于保存 Select 语句、Prepared Select 语句或 CallableStatement 返回的值。
如果提供了变量名称列表,那么对于 Select 语句返回的每一行,变量都设置为对应列的值(如果提供了变量名称),并且还设置了行数。
Result variable names:如果指定,这将创建一个包含行映射列表的 Object 变量。每个映射都包含作为键的列名和作为值的列数据。
我们建个Debug Sample,看下设置了这两个,具体变量的值是什么,可以看下列_#=行数、列_1为列的第一行。
2、通过BeanShell 取数据库查询结果的用法:
3、对数据库查询结果,进行参数化,可以使用ForEach控制器,输入的变量名称就可以当正常的变量使用了。
输入变量前缀:order_no(与JDBC Requse中的返回结果Variable names变量名一致)
Start index for loop (exclusive):循环开始的索引(默认从0开始,如果填写是2,实际是从2+1个开始执行)
End index for loop(inclusive):循环结束的索引
输出变量名称:提供给其他控件引用,可自定义,调用时使用该参数
最后,当然还有很多方法可以进行提取、加工等,但提取的方式基本相同,都是从数据库查询结果的变量中进行。