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_name:Oracle 监听器监听的端口:Oracle实例的名 (可在oracel安装目录下tnsnames.ora文件中找到这些信息)
  • JDBC Driver class:JDBC驱动
  • username:数据库登陆的用户名
  • passwrod:数据库登陆的密码

三、配置JDBC Request:

1、重要参数说明:

  Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable 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

Jmeter 中JDBC request 详解 !的更多相关文章

  1. Jmeter中JDBC Request和BeanShell PostProcessor的结合使用(SQL模糊查询)

    [前言] 今天记录一下Jmeter中JDBC Request和BeanShell PostProcessor的结合使用的方法(SQL模糊查询) [步骤] 1.下载对应数据库的驱动包到jmeter安装目 ...

  2. 『动善时』JMeter基础 — 30、JMeter中JSON断言详解

    目录 1.JSON断言组件界面详解 2.JSON断言组件的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 (3)JSON断言界面内容 (4)查看运行结果 (5)断言结果组件说明 3.JS ...

  3. 『动善时』JMeter基础 — 31、JMeter中BeanShell断言详解

    目录 1.BeanShell简介 2.Beanshell的内置变量和方法 3.BeanShell断言界面详解 4.BeanShell断言的使用 (1)测试计划内包含的元件 (2)登陆接口请求界面内容 ...

  4. 『动善时』JMeter基础 — 40、JMeter中ForEach控制器详解

    目录 1.什么是逻辑控制器 2.ForEach控制器介绍 3.ForEach控制器的使用 (1)测试计划内包含的元件 (2)获取学院列表请求内容 (3)JSON提取器内容 (4)ForEach控制器内 ...

  5. Android中Service(服务)详解

    http://blog.csdn.net/ryantang03/article/details/7770939 Android中Service(服务)详解 标签: serviceandroidappl ...

  6. Jmeter之JDBC Request使用方法(oracle)

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

  7. Java的JDBC事务详解

    Java的JDBC事务详解         分类:             Hibernate              2010-06-02 10:04     12298人阅读     评论(9) ...

  8. Maven依赖中的scope详解,在eclipse里面用maven install可以编程成功,到服务器上用命令执行报VM crash错误

    Maven依赖中的scope详解 项目中用了<scope>test</scope>在eclipse里面用maven install可以编译成功,到服务器上用命令执行报VM cr ...

  9. springcloud中Feign配置详解

    Spring Cloud中Feign配置详解 到目前为止,小伙伴们对Feign的使用已经掌握的差不多了,我们在前文也提到Feign是对Ribbon和Hystrix的整合,那么在Feign中,我们要如何 ...

随机推荐

  1. 二叉树 ADT接口 遍历算法 常规运算

    BTree.h   (结构定义, 基本操作, 遍历) #define MS 10 typedef struct BTreeNode{ char data; struct BTreeNode * lef ...

  2. poj 2349 Arctic Network(prime)

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 25165   Accepted: 7751 Description The ...

  3. 如何将M文件转成独立可执行程序

    如何将MATLAB程序编译成独立可执行的程序?生成独立可执行的程序(exe文件)步骤    1.安装编译器.可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2013实现 ...

  4. nodejs实现文件上传

    在使用ant-design的upload上传文件时,前端很好实现,那么我们如何实现node服务端呢? 服务端文件上传实现 var express = require('express'); var f ...

  5. gdb调试带参数程序

    一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要 把调试信息加到可执行文件中.使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点.如: > ...

  6. abp core版本添加额外应用层

    1.新建类库WebProject.Application.App 2.添加WebProjectApplicationAppModule.cs 3.注册模块 using Abp.Application. ...

  7. java生成pdf

    介绍 本篇博客主要是为了介绍如何使用:flying-saucer+itext+freemark实现导出复杂点的pdf文件. 思路 先把pdf的内容以html形式准备好 使用freemarker将htm ...

  8. 六、EnterpriseFrameWork框架基础功能之权限管理

    回<[开源]EnterpriseFrameWork框架系列文章索引> 从本章开始进入框架的第二块内容“EnterpriseFrameWork框架的基础功能”,包括:权限管理.字典数据管理. ...

  9. mysql数据库 root密码重置

    问题 忘记了MySQL的密码,网上搜索的杂七杂八,汇总一下. mysql版本是windows的mysql 5.7 步骤 1.以管理员身份打开cmd,切换到MySQL的bin目录 默认的话,一般是在C: ...

  10. centos7 安装java+tomcat

    环境准备:1.Linux 系统服务器: CentOS 72.yum 3.4.33.java 1.84.tomcat yum环境 运行rpm -qa | grep yum [root@localhost ...