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. 用html页面模板使用django完成个人博客

    1.进入虚拟环境: workon 虚拟环境名 2.找到我们的项目管理文件夹django,进入创建项目django-admin startproject blog 3.进入到我们的项目文件夹当中,创建我 ...

  2. 30. Insert Interval【LintCode by java】

    Description Given a non-overlapping interval list which is sorted by start point. Insert a new inter ...

  3. 20155301 2016-2017-2 《Java程序设计》第2周学习总结

    20155301 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 教材的第三章内容主要分为两大方面: 一.程序中的数据类型,变量和运算符,主要讲述了各种类型的 ...

  4. 20155334 实验四:Android程序设计

    20155334实验四:Android程序设计 实验内容 基于Android Studio开发简单的Android应用并部署测试; 了解Android组件.布局管理器的使用: 掌握Android中事件 ...

  5. 20145209 实验三 《敏捷开发与XP实践》 实验报告

    20145209 实验三 <敏捷开发与XP实践> 实验报告 实验内容 XP基础. XP核心实践. 相关工具. 实验步骤 敏捷开发与XP 1.敏捷开发 敏捷开发(Agile Developm ...

  6. js获取上月的最后一天

    一.问题: 在最近的开发中遇到一个需求,需要初始化默认时间为上月的最后一天 而在日历中这个值在每个月都不是固定的 二.分析: 问题可以转化为,获取指定月份时间的月末最后一天,下边是代码,供大家参考 f ...

  7. [arc076F]Exhausted?

    Description 传送门 Solution 额外的椅子可以放置在任意实数位置,所以该问题其实就问最多能够有多少人坐下.由于每个人的需求有<=l和>=r两个限制,并不是很好下手,我们先 ...

  8. day2 self __init__ __str__

    1 self  谁调用指向谁自己  相当于其他语言的this #1.类名 class Cat(): #大驼峰的命名规范 #2.类的属性 #3.类的方法 def eat(self): print(&qu ...

  9. HIS系统患者实体OO设计的一点思考

    软件开发的生命周期中,数据库建模后,在某个数据库系统中形成相对应的表,之后再根据数据库模型设计相关的业务对象及其关系.这其实是进行了两次设计,一次是数据库模型设计,数据库模型设计是根据现实业务提取出来 ...

  10. javaweb(十一)——使用Cookie进行会话管理

    一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...