栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

使用JMeter跑通JDBC协议接口的脚本、查询数据库、JDBC Request和JDBC Connection Configuration元件使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JMeter跑通JDBC协议接口的脚本、查询数据库、JDBC Request和JDBC Connection Configuration元件使用

1、JDBC协议

使用场景:数据库性能(d订单等大量查询)
总结:可能出现大量查询或者数量大的情况。

用到的元件:
JDBC Request、JDBC Connection Configuration
JDBC Request
示例:使用"XXX"的 JDBC接口(要确保"XXX"数据库是启动的)
用户名 root  密码 XXX

启动和关闭mysql(开机会自动启)
service mysqld start    #启动
service mysqld stop     #停止
service mysqld status   #状态

进入mysql
    //跳转到mysql所在的目录
    cd /usr/local/mysql  

    //进入mysql
    ./mysql -u root -p 回车,然后输入密码

    进入mysql之后的命令:
    show databases;  //查看有哪些表
    use mysql;  	 //使用mysql的库

2、使用 JMeter请求JDBC协议接口的脚本

1、添加元件:JDBC Request、JDBC Connection Configuration
2、JDBC Connection Configuration 参数配置
    在测性能时,尽量在局域网环境测试,排除网络速度的不稳定的干扰。
    //dstest:不同数据库不一样,端口号也不一样
    jdbc:mysql://192.168.221.13:3306/dstest

参数配置:
(1) Variable Name Bound to Pool
	Variable Name, 创建池的变量名 。这个变量在后面介绍的 JDBC Request 请求中用到。 
(2) Connection Pool Configuration
    Max Number of Connections:池中允许的最大连接数。在大多数情况下,将其设置为零(0),这意味着每个线程都将拥有自己的池,其中只有一个连接,即线程之间不共享连接。如果您真的想使用共享池,那么将 max count 设置为与线程数量相同,以确保线程不会彼此等待。

    Max Wait (ms):在连接池中取回连接最大等待时间。
    中文:如果在试图检索连接过程中(取回连接)超过所设置期限,连接池抛出一个错误。

    Time Between Eviction Runs (ms) :疏散时间。
    中文:在空闲对象驱逐线程运行期间,可以休眠的毫秒数。当非正值时,将运行无空闲对象驱逐器线程。(默认为“60000”,1分钟)(如果当前连接池中某个连接在空闲了time Between Eviction Runs Millis时间后任然没有使用,则被物理性的关闭掉。)

    Auto Commit:自动提交sql语句。
    中文:打开或关闭连接的自动提交。
    原文:Turn auto commit on or off for the connections。
(3) Connection Validation by Pool 
    这是Jmeter用来检验数据库连接是否有效的一种机制,超过5秒没有使用的话,就会用validation query去测试下这个连接是否有效。

    Test While Idle:当空闲的时候测试连接是否断开。
    中文:测试连接池的空闲连接,验证查询将会被使用去测试。
    原文:Test idle connections of the pool, see BasicDataSource.html#getTestWhileIdle . Validation Query will be used to test it.

    Soft Min Evictable Idle Time(ms)   
    中文:最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000(5秒)
    
    Validation Query :验证查询 。一个简单的查询,用来确定数据库是否仍在响应。 这个验证查询在池创建中使用,即使“空闲测试”建议查询只在空闲连接上使用,也可以验证它。
    验证查询的列表可以配置 jdbc.config.check。查询属性,默认情况下:
        hsqldb:select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
        Oracle:select 1 from dual
        DB2:select 1 from sysibm.sysdummy1
        MySQL:select 1
        Microsoft SQL Server (MS JDBC driver):select 1
        PostgreSQL:select 1
        Ingres:select 1
        Derby:values 1
        H2:select 1
        Firebird:select 1 from rdb$database
(4) Database Connection Configuration
    Database URL: jdbc:mysql://服务器地址:3306/数据库名  
	例如:jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true)
    注:“&allowMultiQueries=true” 这句话的意思是为了在JDBC中执行多条select语句的时候用的!
    
    JDBC Driver class:数据库JDBC驱动类名:com.mysql.jdbc.Driver
    
   	Username:数据库连接用户名
   	
    password:数据库连接密码
DatebaseDriver classDatabase URL jdbc:mysql://host:port/(dbname)
MySQLcom.mysql.jdbc.Driverjdbc:postgresql:(dbname)
PostgreSQLorg.postgresql.Driverjdbc:oracle:thin:@//host:port/service OR jdbc:oracle:thin:@(description=(address=(host=(mc-name))
Oracleoracle.jdbc.driver.OracleDriver(protocol=tcp)(port=(port-no)))(connect_data=(sid=(sid])))
Ingres (2006)ingres.jdbc.IngresDriverjdbc:ingres://host:port/db[;attr=value]
MSSQLcom.microsoft.sqlserver.jdbc.SQLServerDriver 或者 net.sourceforge.jtds.jdbc.Driverjdbc:sqlserver://IP:port;databaseName=DBname 或者 jdbc:jtds:sqlserver://localhost:1433/"+“library”

3、JDBC Request 参数配置
这个Sampler可以向数据库发送一个jdbc请求(sql语句),并获取返回的数据库数据进行操作。它经常需要和JDBC Connection Configuration配置原件(配置数据库连接的相关属性,如连接名、密码等)一起使用。

JDBC Request 参数说明:
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable
Name Bound Pool名字保持一致。
Query Type:此处支持方式多样,可以用于添加或者筛选数据,根据需要和Query配合使用;
Parameter valus:参数值,顺序替代Query中的?;
Parameter types:参数类型,可参考:Javadoc for java.sql.Types
Variable names:保存sql语句返回结果的变量名 ,用于作为参数供调用
Result variable name:创建一个对象变量,保存所有返回的结果 ,供调用;
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果

4、执行 JDBC脚本
可以跑多个请求。

5、查询数据,结果分析
	报告显示查询平均值约为:10s、预期:3s以内。
	原因:没有索引,全量查询比较耗时。
	解决:优化数据库结构。

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1017014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号