zoukankan      html  css  js  c++  java
  • Jmeter,数据库压力测试

    因工作需求,需对数据库进行压力测试

    最开始使用研发写的Java代码进行测试,突然想到jmeter也可以对数据库进行压测,那为啥不自己研究一套方法出来呢。

    于是网上搜索了一下关于如何对数据库进行压测的帖子,虽说遇到了一些问题,但最终还是解决了。

    流程如下

    首先,需确定待测的数据库是什么类型,我所测试的是mysql。

    jmeter支持很多数据库,只需要更改对应的数据库驱动类和url。以下为整理到的数据库驱动类对应url。并且给出一个mysql数据库select的简单应用。如下:

    一 不同数据库驱动类和对应的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:user/pass@//host:port/service

    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:1433;databaseName=DBname

    或者

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

    二、mysql的select语句压力测试案例:

     1、打开Jmeter,创建一个测试计划,添加线程组,如下:

    2、为线程组添加一个JDBC请求:选中线程组->添加->Sampler->JDBC Request

       填写对应的测试语句,增删改查等在Query Type中设置。

    3、添加jdbc配置元件:添加->配置元件->JDBC Connection Configuration

    4、再添加一个监听器:察看结果数。点击运行,可以在察看结果数中察看运行的结果,绿色的代表通过。红色的有问题,需根据实际情况定位

    三、过程中遇到的问题如下:

    1JDBC的使用问题(运行错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver;  java.lang.ClassNotFoundException:com.mysql.jdbc.Driver)

    resp:缺少jar包,下载后放到Jmeter目录下:apache-jmeter-2.13lib,重启jmeter解决(没有重启前始终报错)

    下载地址:https://dev.mysql.com/downloads/file/?id=476197

    2、解决第一个问题后,执行,又遇到报错,com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; 

    该错是因为SQL语句有问题,我的查询语句的表是中文字符的,因使用Oracle习惯性的加上单引号,结果没想到mysql不区分中英文,不用加引号,将单引号去除后就解决了。

  • 相关阅读:
    谷歌推开发者培训指南 欲提升Android软件质量
    装饰者模式【java版】
    Java GetBytes 编码方式
    为什么程序员都是夜猫子
    Android的Handler总结
    常见的自然法则及管理启示
    java常用设计模式
    Android optionsmenu例程
    关于程序员成长的一点思考
    Java 字节流读写文件
  • 原文地址:https://www.cnblogs.com/zjn-20161215/p/8691465.html
Copyright © 2011-2022 走看看