Jmeter提供了JDBC连接的插件,通过执行SQL语句的java API,实现对数据库的访问和查询,同时可以操作一次向数据库插入上百条上千条数据。

一、安装驱动包

  将需要连接JDBC的jar包放入jmeter安装文件的lib文件中(也可测试计划中的导入)

二、配置JDBC Connection configuration

  右键线程组→添加→配置元件→JDBC Connection configuration

特别需要注意的是Validation  Query:针对mysql为默认填写Select1,但对于oracle来说:Select1   from  dual

Variable Name:数据库连接池的名称,在使用JDBC Request时通过该连接池名称进行连接,因此在使用JDBC Request时输入的连接池名称要与JDBC Connection Configuration中的一致。

Connection Pool Configuration中定义了基本配置,可以设置其为默认值。主要需要关注的是Database Configuration中的配置:

  Database URL:为数据库的URL,jdbc:mysql://服务器地址:监听端口/数据库名称

  JDBC Driver class:JDBC驱动。一般为com.mysql.jdbc.Driver 或 ort.gjt.mm.mysql.Driver

  Username:数据库的用户名

  Password:数据库密码

三、设置JDBC Request
    

  Variable Name:数据库连接池的名称;

  Query Type:查询类型。例如,使用select查询时使用Select Statement,使用delete删除表时使用Update Statement;

  Query:在此可以使用数据库操作语句

  Parameter Name:引用的参数值

  Parameter Type:引用参数值的类型

  Variable name:使用sql语句返回的变量名

  Result Variable name:定义一个参数的名称用于保存sql查询结果的返回值

  Query time:设置定时器时间

  Handle Result:参数保存时的保存类型

四、参数化的使用方法

  方式一:使用${变量名},例如:select   *  from  table1  where  pwd=${password};

  变量password可以通过用户自定义变量中设置,或者通过其他响应报文中提取出来的值

  方式二:使用Parameter Name

  使用占位符?来代替参数值,在Parameter Name中填入参数值,严格限制参数值的顺序。而Parameter Type中填入的是相对应的参数值类型

     

  方式三:使用Variable names

  在Variable names中设置的变量名对应代表了数据库中相应的列,利用逗号隔开,如A1代表第一列的所有内容,A3代表第三列的所有内容。若要取第一列第二行的内容,则可以用A1_2表示;

  若要取得A1列的总行数,则用A1_#表示,在外部引用该变量时可以直接利用${A1_2}获取,此时取的是第一列第二行的内容。

  下面利用BeanShell来打印A3_1和A1_#的值,即取第三行第一列的值和取第一列的行数

  

  通过查看控制台得:

遇到的问题

1、出现:java.sql.SQLException: No suitable driver found for jdbc:oracle:thin:@127.0.0.1:1521:ORCL错误
  解决原来是因为没有加载包的缘故解决方法:关闭jmeter,然后将class12.jar(电脑上搜索一下classes12.jar这个文件)复制到jmeter目录下面的lib目录中,重新启动运行即可。
 
 2、连接MySQL数据库时,出现:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown character set: 'utf8mb4'错误
  看起来似乎是设置字符的问题,后来在JDBC连接配置那里将Database URL加上字符编码即可(?characterEncoding=UTF-8)jdbc:mysql://127.0.0.1:3306/paydb?characterEncoding=UTF-8
 
 3、出现:org.apache.avalon.excalibur.datasource.NoAvailableConnectionException: Could not create enough Components to service your request (Timed out).
  解决方法:出现这个原因是因为连接超时,增大Pool TimeOUT就可以了。 
 
4、执行时提示:ORA-00911: invalid character。
  解决方法:确保你在JDBC Request里面的Query中输入的SQL语句是正确的。注意:SQL语句后面不要添加分号

 附:数据库连接driverClass和jdbcUrl大全

一、Mysql:

  driverClass:com.mysql.jdbc.Driver

      org.gjt.mm.mysql.Driver

  jdbcUrl:jdbc:mysql://192.168.0.1:3306/yourDBName

二、oracle

  (thin模式)

  driverClass:oracle.jdbc.driver.OracleDriver

  jdbcUrl:jdbc:oracle:thin:@192.168.0.1:1521:yourDBName

三、SQL Server:

  driverClass:com.microsoft.sqlserver.jdbc.SQLServerDriver(2005版本及以后)

com.microsoft.jdbc.sqlserver.SQLServerDriver(2000版本)

  jdbcUrl:jdbc:sqlserver://192.168.0.1:1433;databasename=yourDBName

四、Sybase:

  driverClass:com.sybase.jdbc3.jdbc.SybDriver
                         com.sysbase.jdbc.SybDriver

  jdbcUrl:jdbc:sybase:Tds:127.0.0.1:5007/myDB

五、DB2:

1、db2java.zip

  driverClass:COM.ibm.db2.jdbc.NET.DB2Driver

  jdbcUrl:jdbc:db2://127.0.0.1:5000/DBNAME

2、db2jcc.jar

  driverClass:com.ibm.db2.jcc.DB2DriverjdbcUrl:jdbc:db2://127.0.0.1:5000/DBNAME

3、driverClass:com.ibm.db2.jdbc.app.DB2DriverjdbcUrl:jdbc:db2://127.0.0.1:5000/yourDBName

JMeter数据库操作详解的更多相关文章

  1. windows phone 8.1开发SQlite数据库操作详解

    原文出自:http://www.bcmeng.com/windows-phone-sqlite1/ 本文小梦将和大家分享WP8.1中SQlite数据库的基本操作:(最后有整个示例的源码)(希望能通过本 ...

  2. android 数据库操作详解

    请看郭大神的八篇专栏,包含sql语句  android封装的databasehelper 和郭大神自己的LitePal  三种使用详解 http://blog.csdn.net/column/deta ...

  3. yii2 数据库操作详解(转载)

    开始使用数据库首先需要配置数据库连接组件,通过添加 db 组件到应用配置实现("基础的" Web 应用是 config/web.php),DSN( Data Source Name ...

  4. JDBC连接mysql数据库操作详解

    1.什么是JDBC JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Jav ...

  5. django 数据库操作详解

    Django配置使用mysql数据库 修改 settings.py 中的 DATABASES  注意:django框架不会自动帮我们生成mysql数据库,所以我们需要自己去创建. DATABASES ...

  6. Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

    public function getMinLimit () {        $sql = "...";        $result = yii::app()->db-& ...

  7. Yii 框架里数据库操作详解

    增:1 第一种 $post=new Post; $post->title='sample post'; $post->content='content for the sample pos ...

  8. MongoDB各种查询操作详解

    这篇文章主要介绍了MongoDB各种查询操作详解,包括比较查询.关联查询.数组查询等,需要的朋友可以参考下   一.find操作 MongoDB中使用find来进行查询,通过指定find的第一个参数可 ...

  9. SAE上传web应用(包括使用数据库)教程详解及问题解惑

    转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995 SAE上传web应用(包括使用数据库)教程详解及问题解惑: 最近由于工作 ...

随机推荐

  1. Struts 2 入门

    Struts 2  入门: 一:Struts 2执行流程: 1 客户端发送请求: 2这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤 ...

  2. PHP+Mysql基于事务处理实现转账功能的方法

    <?php header("Content-Type:text/html;charset=utf-8"); $mysqli=new mysqli("localhos ...

  3. python学习之路day1

    学习总结: 变量,字符的由来,python2和python3的区别,控制语句:if,for,while,break,continue用法 学习示例: if用法1:判断年龄 # -*- coding: ...

  4. flask_login 整合 pyjwt + json 简易flask框架

    现在很多框架都实现前后端分离,主要为了适应以下几个目的: 1,前后端的分离,可以使前端开发和后端开发更加分工明确,而不是后端还需要在视图模板中加入很多{% XXXX %}标签 2,是为了适应跨域调用或 ...

  5. AspNet Core Api Restful +Swagger 发布IIS 实现微服务之旅 (二)

    上一步我们创建好CoreApi 接下来在框架中加入 Swagger  并发布  到 IIS (1)首先点击依赖项>管理Nuget包 (2)输入 Swashbuckle.aspnetCore  比 ...

  6. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

  7. Swift开发教程--使用Storyboard进行界面跳转

    使用storyboard结合代码来做确实能够给开发带来非常多的便利. 在实践的过程中,我们常常会遇到界面的跳转问题. 通过控件和界面的建立的"连接"就能够了. 假设是navigat ...

  8. 使用milang出错:LookupError: unknown encoding: idna

    今天同事安装了milang,结果发现例如以下出错: Traceback (most recent call last): File "F:\vmid.py", line 11, i ...

  9. JQuery插件开发标准写法

    ;//step01 定义JQuery的作用域 (function ($) { //step03-a 插件的默认值属性 var defaults = { prevId: 'prevBtn', prevT ...

  10. 通过第三方工具体验Microsoft Graph

    作者:陈希章 发表于 2017年3月22日 上一篇文章我介绍了如何利用官方提供的Graph 浏览器快速体验Microsoft Graph强大功能,这是极好的起点.官方的Graph浏览器力图用最简单的方 ...