• jmeter连接数据库


    转自http://blog.csdn.net/ck3207/article/details/52704923

    jmeter实际应用过程中,都免不了要连接数据库。主流数据库有Oracle、sqlserver、MySQL…由于我实际用到的数据库只有mysql 与 oracle 就只介绍这两种数据库的配置及运用。

    数据库驱动

    连接数据库,需要下载对应的数据库驱动jar包 
    建议都去从官网下载: 
    mysql jar包地址:http://dev.mysql.com/downloads/connector/j/ 
    mysqlAdrress

    oracle jar包下载地址: 
    http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html 
    oracleAdress

    提示:mysql jdbc driver下载最新的就可以;但是oracle jdbc driver建议下载为对应数据库版本的驱动。下载oracle驱动包需要登录,如果没有建议建一个账号,两分钟就可以搞定。 
    分享一个我目前的驱动: 
    链接:http://pan.baidu.com/s/1ctDMpw 密码:twqn

    加载驱动

    mysql 的驱动包可以放在对应Java安装目录下的jdk下的jre下的lib下的ext目录下。 
    Example:C:Program FilesJavajdk1.7.0_79jrelibext 
    oracle 的驱动包需要放在对应的jmter安装目录下的lib目录下。 
    Example:D:apache-jmeter-3.0lib

    配置数据库连接

    Mysql

    mysql 
    如上图,配置的时候需要注意两点。一是:Variable Name 这个变量就是数据库配置的名称。若进行jdbc Request,必须输入数据库配置名称。如果找不到这个数据库配置名称,那么相当于不知道你要连的数据库的地址、用户名以及密码。 
    mysql数据库连接地址格式为: 
    jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称 
    Example: jdbc:mysql://localhost:3306/test

    oracle

    oracle相对于mysql稍有写区别。oracle数据库地址连接格式为: 
    jdbc:oracle:thin:@ip:port:实例名 
    eg:如果是本地的oracle数据库,端口为1521,数据库实例名为:test 
    那么连接地址为:jdbc:oracle:thin:@localhost:1521:test 
    注意:实例名称并不是数据库名称 
    如果不知道实例名,那么可以在pl sql可以查看。 
    操作过程为:菜单栏 help > Support Info… >TNS Names 
    info 
    上图 SERVICE_NAME既是实例名。另外oracle配置时,需设置Validation Query为:select 1 from dual,如果是默认 select 1执行时会出现错误。

    访问数据库

    以下主要以mysql为例,oracle与之相似。 
    jdbc Request 
    JDBC Request时用到了前面说到的 Variable Name,需对应。运行如图语句,可以得到如下图的结果。 
    result1  
    由此可见,数据库连接是成功了。

    含变量的sql语句实现

    sql中含变量是在所难免,当需要填入变量时候,可以用?代替变量,在参数值(Parameter values)中输入变量值,参数类型(Parameter types)中输入参数的实际类型。如图: 
    result2 
    但这样的变量输入方式没有实际意义,所以需要一个真正的变量而不是为变量。定义一个用户自定义变量name,并赋值为:ck1。如图: 
    name 
    在 JDBC Request中,输入参数值中改成 ${name}(在jmter中,变量表达方式为:${variable})如图: 
    variable 
    在执行有变量的sql时,需注意QueryType应选择Prepared Select Statement。当有多个参数时,参数间需要用逗号隔开。对应的,参数类型个数需与参数个数对应,参数类型与参数类型也是用逗号隔开。

    获取JDBC Request结果

    数据库交互后,可能需要提取对应字段的值,那么需要提取结果。如图,先设置输入变量(Variable Names)。注意:一:输出变量值个数若为多个,中间用逗号隔开;二:输出变量值个数必须与选取的个数一致,不能多也不能少。 
    getresult 
    其执行结果是一个两行三列的数据。那么三列(id,name,agend)分别对应为:A,B,C。如果想得到name列的第二条数据,则变量值为:B_2。如果想得到agend列的第一条数据,则变量值为:C_1。想得到X列第Y条数据,器变量值为:X_Y。 
    X_Y 
    如果想得到执行结果的总数,则可用 A_#(A列数据总数)表示,也可以用B_#或C_#。 
    当你执行oracle数据时候,发现sql没有问题,但是就是报语法错误了。有两点建议,一:查看QueryType值是否正确;二:查看sql最后有没有分号(;),绝对不能含有分号。mysql目前没有这个问题。还有一点,当进行增、删、改语句时,都是选择QueryType为Update Statement(Prepared Update Statement)

  • 相关阅读:
    普通索引和唯一索引的选择
    深入理解MySQL索引(上)
    深入理解MySQL索引(下)
    Python3爬取小说并保存到文件
    MySQL45讲:一条update语句是怎样执行的
    IO软件层次结构与假脱机技术
    一条查询SQl是怎样执行的
    MySQL45讲笔记-事务隔离级别,为什么你改了数据我看不见
    了解一下IO控制器与控制方式
    3.6类别不平衡问题
  • 原文地址:https://www.cnblogs.com/wangxiaoqun/p/6677299.html
Copyright © 2020-2023  润新知