Jmeter之JDBC Request使用方法(oracle)

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

JDBC Request:

  这个sampler可以向数据库发送一个jdbc请求(sql语句),它经常需要和JDBC Connection Configuration 配置元件一起配合使用。  

目录:

一、准备工作

二、配置JDBC Connection Configuration

三、配置JDBC Request

四:JDBC Request参数化

五:Variables names参数使用方法

六:Result variable name参数使用方法

七:数据库驱动类和URL格式

 

一、准备工作:

1、本文使用oracle 数据库进行测试,数据库实例名为ORCL,用户名密码为scoff/******

2、数据库中有表:DEPT,表中数据如下:

 

3、复制ORACLE的JDBC驱动JAR包文件(我的在:D:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar)到JMeter的lib目录下 

或者

  在Jmeter的Test Plan中引入ojdbc14.jar包

 

二、配置JDBC Connection Configuration:

重要参数说明:

  • Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
  • Database URL:数据库url,jdbc:oracle:thin:@host_ip or machine_nameOracle 监听器监听的端口Oracle实例的名 (可在oracel安装目录下tnsnames.ora文件中找到这些信息)
  • JDBC Driver class:JDBC驱动
  • username:数据库登陆的用户名
  • passwrod:数据库登陆的密码

三、配置JDBC Request:

1、重要参数说明:

  Variable Name:数据库连接池的名字,需要与JDBC Connection ConfigurationVariable Name Bound Pool名字保持一致

  Query:填写的sql语句未尾不要加“;”

  Parameter valus:参数值

  Parameter types:参数类型,可参考:Javadoc for java.sql.Types

  Variable names:保存sql语句返回结果的变量名

  Result variable name:创建一个对象变量,保存所有返回的结果

  Query timeout:查询超时时间

  Handle result set:定义如何处理由callable statements语句返回的结果

2、执行结果:

 

四:JDBC Request参数化

方法(一): 定义变量,在sql quety中使用变量:

1、在Test plan中定义三个变量(当然也可以使用参数化:Jmeter参数化):

2、在sql query中使用${变量名}的方式引用:

方法(二): 在sql quety中使用“?”作为占位符,并传递参数值和参数类型,如下图:

1、传递的参数值是常量,如下图传递了3个常量:10,ACCOUNTINGNEW YORK:

2、传递的参数值是变量,如下图中${DNAME}:

 

五:Variables names参数使用方法:

  Jmeter官网给的解释是:如果给这个参数设置了值,它会保存sql语句返回的数据和返回数据的总行数。假如,sql语句返回2行,3列,且variables names设置为A,,C,那么如下变量会被设置为:

  A_#=2 (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行 
C_#=2 (总行数) 
C_1=第3列, 第1行
C_2=第3列, 第2行

  • 如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
  • 如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
  • 可以使用${A_#}、${A_1}...来获取相应的值

示例

我们还是用上面的数据库,把所有数据查出来,DEPT表有有3个字段,4条记录(忘记了的可以回到第一步那里查看)

1、添加一个jdbc request名为select4,添加一个Debug Sampler用来查看输出的结果,设置 variables name为a,b,c:

2、执行结果:

 

 

六:Result variable name参数使用方法:

   如果给这个参数设置值,它会创建一个对象变量,保存所有返回的结果,获取具体值的方法:columnValue = vars.getObject("resultObject").get(0).get("Column Name")

执行结果:

 

七:数据库驱动类和URL格式:

Datebase

Driver class

Database URL

MySQL

com.mysql.jdbc.Driver

jdbc:mysql://host:port/{dbname}

PostgreSQL

org.postgresql.Driver

jdbc:postgresql:{dbname}

Oracle

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:@//host:port/service OR

jdbc:oracle:thin:@(description=(address=(host={mc-name})

(protocol=tcp)(port={port-no}))(connect_data=(sid={sid})))

Ingres (2006)

ingres.jdbc.IngresDriver

jdbc:ingres://host:port/db[;attr=value]

MSSQL

com.microsoft.sqlserver.jdbc.SQLServerDriver

或者

net.sourceforge.jtds.jdbc.Driver

jdbc:sqlserver://IP:port;databaseName=DBname

或者

jdbc:jtds:sqlserver://localhost:1433/"+"library"

 

 

 

 

官网例子(mysql):http://jmeter.apache.org/usermanual/build-db-test-plan.html

关于jmeter中jdbc相关参数的应用: http://f.dataguru.cn/thread-554702-1-1.html

 


本文转自贺满博客园博客,原文链接:http://www.cnblogs.com/puresoul/p/4908014.html,如需转载请自行联系原作者。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
SQL Oracle 关系型数据库
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database (
16 2
|
8天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之使用JDBC方式读取Oracle的number类型时,通过什么方式进行映射
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
15 0
实时计算 Flink版产品使用合集之使用JDBC方式读取Oracle的number类型时,通过什么方式进行映射
|
10天前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
18 6
|
10天前
|
SQL Java 关系型数据库
性能工具之JMeter JDBC Request 基础
JDBC 本质其实是官方(sun 公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动 jar 包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动 jar 包中的实现类。
39 0
性能工具之JMeter JDBC Request 基础
|
7月前
|
Oracle 关系型数据库 Java
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
|
6月前
|
Java 测试技术 Apache
用JMeter做接口压力测试
JMeter是Apache组织开发的基于Java的压力测试工具,它是用 Java 语言编写的
71 0
|
6月前
|
测试技术
JMeter压力测试简单例子
JMeter压力测试简单例子
72 0
|
8月前
|
XML 前端开发 测试技术
使用 jMeter 对 SAP Spartacus 进行并发性能测试
使用 jMeter 对 SAP Spartacus 进行并发性能测试
79 0
|
10天前
|
数据可视化 Java 测试技术
JMeter 如何实现 Elasticsearch 8.X 性能测试?
JMeter 如何实现 Elasticsearch 8.X 性能测试?
22 0
|
10天前
|
JSON 网络协议 Java
使用Jmeter进行功能和性能测试
使用Jmeter进行功能和性能测试

推荐镜像

更多