Jmeter之JDBC Request示例

本文介绍JDBCRequest在JMeter中的应用,包括配置JDBCConnectionConfiguration建立数据库连接、使用JDBCRequest执行SQL语句的方法,以及如何处理参数和返回结果。

1、JDBC Request说明:

  这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作。它经常需要和JDBC Connection Configuration配置原件(配置数据库连接的相关属性,如连接名、密码等)一起使用。
  官网范例地址

2、数据配置说明:

准备mysql,数据如下:
mysql数据

3、JDBC Connection Configuration配置:

在线程组添加JDBC Connection Configuration配置如下:
config
此处配置说明如下:
Variable Name for created pool:此处名称自行设置;
Connection Pool Configuration:此处设置中除了Max Number of Connections需要根据线程数做修改外其他可以用默认配置;
Database Connection Configuration:此部分配置即与常用的数据库连接所需内容相同,url,驱动,用户名和密码,如下:

DatebaseDriver classDatabase URL
MySQLcom.mysql.jdbc.Driverjdbc:mysql://host:port/{dbname}
PostgreSQLorg.postgresql.Driverjdbc:postgresql:{dbname}
Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:user/pass@//host:port/service
Ingres (2006)ingres.jdbc.IngresDriverjdbc:ingres://host:port/db[;attr=value]
MSSQLcom.microsoft.sqlserver.jdbc.SQLServerDriver或者net.sourceforge.jtds.jdbc.Driverjdbc:sqlserver://IP:1433;databaseName=DBname或者jdbc:jtds:sqlserver://localhost:1433/”+”library”

4、JDBC Request配置1:

request1
JDBC Request 参数说明:
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致
Query Type:此处支持方式多样,可以用于添加或者筛选数据,根据需要和Query配合使用;
Query:填写的sql语句未尾不要加“;”
Parameter valus:参数值,顺序替代Query中的?;
Parameter types:参数类型,可参考:Javadoc for java.sql.Types
Variable names:保存sql语句返回结果的变量名 ,用于作为参数供调用
Result variable name:创建一个对象变量,保存所有返回的结果 ,供调用;
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果。

结果(运行时记得添加数据库连接用的jar包,可以直接在Test Plan中指定):

结果1

5、JDBC Request配置2使用Parameter valus:

如要使用Parameter valus,则Query Type就不能为Select Statement,会失败的,可以选择使用Prepared Select Statement,配置如下:
配置2
此处的Parameter values对应Query中的”?”,有几个”?”则此处要填写几个值,以”,”分隔;
Parameter types则必须和Parameter values一一对应,且类型必须正确;
在此范例中运行结果如下:
结果2.1
结果2.2

JMeter中对JDBC Request的结果进行提取是一个常见的操作,特别是在需要进行数据验证或后续请求需要使用数据库返回的数据时。JMeter提供了多种方法来提取JDBC Request的结果,以下是一些常用的方法: ### 1. 使用正则表达式提取器 正则表达式提取器可以从响应中提取特定格式的数据。 **步骤:** 1. 在JDBC Request下添加一个“后置处理器” -> “正则表达式提取器”。 2. 配置正则表达式提取器: - 名称:自定义 - 应用范围:通常选择“主本” - 正则表达式:根据返回的数据格式编写,如:`"id":"(.*?)"` - 模板:`$1$` - 匹配数字:1(表示提取第一个匹配项) ### 2. 使用JSON提取器 如果返回的数据是JSON格式,可以使用JSON提取器。 **步骤:** 1. 在JDBC Request下添加一个“后置处理器” -> “JSON提取器”。 2. 配置JSON提取器: - 名称:自定义 - 变量名称:如 `id` - JSON路径表达式:如 `$.id` - 匹配数字:0(表示提取所有匹配项) ### 3. 使用XPath提取器 如果返回的数据是XML格式,可以使用XPath提取器。 **步骤:** 1. 在JDBC Request下添加一个“后置处理器” -> “XPath提取器”。 2. 配置XPath提取器: - 名称:自定义 - XPath查询:如 `/root/id` - 变量名称:如 `id` ### 示例 假设我们有一个JDBC Request返回如下JSON数据: ```json { "id": "123", "name": "John Doe" } ``` 我们希望提取 `id` 和 `name` 的值。 **步骤:** 1. 在JDBC Request下添加一个“后置处理器” -> “JSON提取器”。 2. 配置JSON提取器: - 变量名称:`id` - JSON路径表达式:`$.name` - 匹配数字:1 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值