jmeter压测jdbc协议操作步骤

 

压力测试之前需要弄清楚,测试的数据库环境是那种驱动,压测不同数据库需要安装不同的数据库驱动,比如:MYSQL,HBASE,HIVE等。 
JDBC Driver class即数据库JDBC驱动类名,在下拉列表选择对应数据库的数据驱动,然而有的JDBC驱动名不在下拉列表中,就需要输入正确的驱动名。这里以HIVE为例进行压测:
准备工作:
 
1、准备好hive的数据库驱动包,放在指定路径下面,如:D:\D\soft\jmeter\apache-jmeter-5.2.1\apache-jmeter-5.2.1\lib,重启jmeter
2、或者放在lib\ext 下面:如:D:\D\soft\jmeter\apache-jmeter-5.2.1\apache-jmeter-5.2.1\lib\ext,重启jmeter
 
操作步骤:
步骤一:添加:线程组
步骤二:添加:JDBC Connection Configuration配置
1、线程组->添加->配置元件->JDBC Connection Configuration,用于连接数据库。
2、Variable Name for created pool:数据库连接池的名称,填写变量名,和JDBC request中的Variable Name进行绑定
3、Connection pool Configuration:连接池参数配置,基本保持默认即可,可根据需要进行修改。
4、关键信息Database Connection Configuration:数据库连接配置:配置项:
1) Database URL:数据库连接:jdbc:hive2://100.xx.xxx.xxx:1000/tmp
2) JDBC Driver class:数据库JDBC驱动类名,选择对应数据库的数据驱动(若在对应的路径下面加载了hive驱动包,此处下拉列表也无法显示hive驱动,需要手动输入正确的驱动名:org.apache.hive.jdbc.HiveDriver)
3) Username:数据库登录用户名:Password:数据库登录密码:
4) Connection Properties:建立连接时要设置的连接属性:注1:Database URL: jdbc:hive://服务器地址:10000/数据库名(比如:jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true。其中&allowMultiQueries=true表示允许执行多条sql):
 
 
其他默认项说明:
【Max Number of Connection:数据库最大链接数,一般可设置为0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享】
【Max Wait (ms):在连接池中取回连接最大等待时间】
【Time Between Eviction Runs(ms):线程可空闲时间如果当前连接池中某个连接在空闲了】
【Auto Commit:true自动提交sql语句】
【nPreinit Pool:立即初始化连接池如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间】
【Connection Validation by Pool:验证连接池是否能响应:配置项:说明:Test While Idle:当连接空闲时测试是否断开】
【Soft Min Evictable Idle Time(ms):连接在池中处于空闲状态的最短时间,默认值为5000(5秒)】
【Transaction isolation:事务隔离级别,主要有如下几个选项:(对JMX加解密) TRANSACTION_NODE 事务节点 、TRANSACTION_READ_UNCOMMITTED 事务未提交读、TRANSACTION_READ_COMMITTED 事务已提交读 、TRANSACTION_SERIALIZABLE 事务序列化 、DEFAULT 默认、TRANSACTION_REPEATABLE_READ 事务重复读:】

 
 

步骤三:添加JDBC Request
1、线程组->添加->取样器->JDBC Request,nVariable Name for pool declared in JDBC Connection Configuration 数据库连接池的名称,和JDBC Connection Configuration的Variable Name for created pool名字保持一致
 
2、SQL Query:sql语句,这里以查询为例:
select * from tmp.test_parquet20210621
 
3、配置项说明:Query Type:sql语句类型,这里的语句选择的select statement,根据实际测试sql来选择:Query:填写的sql语句,多条语句中间用;分割,语句末尾不加;
4、【JDBC Request:要传输的值】
5、【Parameter types:传输值的类型】
6、 【Variable names:sql执行结果变量名】
7、 【Result variable names:所有结果当做一个对象存储】
8、 【Query timeouts(s):查询超时时间】
9、Limit Result Set:限制 sql 语句返回结果集的行数:Handle Result Set:如何定义 callable statements 返回的结果集;默认是存储为字符串
 
步骤四:脚本执行:添加查看结果树,线程组->添加->监听器->查看结果树,根据上面步骤对JDBC Connection Configuration和JDBC Request进行编辑完成后,单击页面顶部的开始按钮,运行脚本。
通过查看结果树查看脚本是否运行正常。在左侧导航树中,选择查看结果树,查看请求结果是否符合预期。如果出现请求失败的或者结果返回不符合预期,需要重新调整脚本或者SQL语句。
 
 
 
 
操作过程中报错:
1、
Cannot load JDBC driver class 'org.apache.hive.jdbc.HiveDriver'
---问题原因:未在jmeter lib路径下放置 hive的数据库驱动jar包
 
2、
Cannot create PoolableConnectionFactory (Could not open client transport with JDBC Uri: jdbc:hive2://100.89.8.40:10399/tmp: Peer indicated failure: PLAIN auth failed: javax.security.sasl.AuthenticationException: Error validating LDAP user [Caused by javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]])
--问题原因:输入错误的用户名或者密码,需要修改正确的用户名密码
 
3、Response message:java.sql.SQLException: Cannot create PoolableConnectionFactory (Method not supported)
----问题原因:hive驱动版本包太老了,需要更新新的版本包再操作
 
4、
Error while compiling statement: FAILED: ParseException line 1:38 cannot recognize input near ';' '<EOF>' '<EOF>' in table source
----问题原因:SQL Query的sql语句最后一行尾部添加了英文;分号
 
5、
Error while compiling statement: FAILED: ParseException line 1:38 character '&#65533;&#65533;' not supported here
----问题原因:SQL Query的sql语句中尾部添加了中文;分号
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值