ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

jmeter连接数据库

2021-01-20 21:03:28  阅读:1017  来源: 互联网

标签:JDBC 数据库 jar jdbc https jmeter com 连接


1、JDBC Connection Configuration配置

1> 在线程组配置元件中添加JDBC Connection Configuration,是关于数据库连接配置 2> 配置说明 第一部分:Variable Name Bound to pool Variable Name for created pool,填写一个自定义变量名,方便后续在JDBC request中引用数据库配置 第二部分:Connection pool Configuration 连接池参数配置,保持默认即可,可根据需求进行修改
字段 含义
Max Number of Connections 最大连接数;做性能测试时,建议填 0 如果填了10,则最大连接10个线程
Max Wait(ms) 在连接池中取回连接最大等待时间,单位毫秒
Time Between Eviction Runs(ms) 线程可空闲时间,单位毫秒 如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉
Auto Commit 自动提交sql语句,如:修改数据库时,自动 commit
Transaction isolation 事务隔离级别
Preinit Pool 立即初始化连接池 如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间
第三部分:Connection Validation by Pool 验证连接池是否可响应
字段 含义
Test While Idle 当连接空闲时是否断开
Soft Min Evictable Idle Time(ms) 连接在池中处于空闲状态的最短时间
Validation Query 一个简单的查询,用于确定数据库是否仍在响应 默认为jdbc驱动程序的 isValid() 方法,适用于许多数据库
第四部分:Database Connection Configuration (数据库连接配置) Database URL(数据库连接 URL) jdbc:mysql://IP:3306/dbname?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&allowMultiQueries=true (允许执行多条SQL) JDBC Driver class (数据库驱动) Username (数据库登录用户名) Password (数据库登录密码) Connection Properties (建立连接时要设置的连接属性) 常见数据库的连接 URL和驱动
数据库 驱动包 驱动类名 JDBC的URL 备注 区别
MySQL https://mvnrepository.com/artifact/mysql/mysql-connector-java(下载路径) com.mysql.jdbc.Driver jdbc:mysql://IP地址:端口号/数据库名字 注:端口号缺省为:3306  
SQL server https://mvnrepository.com/artifact/com.microsoft.sqlserver/sqljdbc4(下载路径) com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:microsoft:sqlserver://IP地址:端口号;DatabaseName=数据库名 注:端口号缺省为:1433 sqljdbc和sqljdbc4区别:https://blog.csdn.net/cainiao_M/article/details/53404222
Oracle https://mvnrepository.com/artifact/com.oracle/ojdbc6(下载路径) oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@IP地址:端口号:数据库名 注:端口号缺省为:1521 ojdbc6和ojdbc14的区别:ojdbc14.jar(适合java-1.4和1.5),ojdbc6(适合java-1.6)

2、JDBC Driver驱动包

2.1> 引用jar包(驱动包)

使用不同的数据库,需要引入不同的 jar 包,一共有两种方式,不过前提是下载好了 jar 包(驱动包)。以MySQL为例 引入方式一 将下好的 jar 包直接放到 jmeter 的 lib 目录下,然后重新启动就行了 引入方式二 在测试计划底部添加 jar 包即可(jar包可以放置任意位置,引用地址正确即可)

2.2> 特别说明

引用jar包版本要与数据库版本相对应 数据库版本查看方式-SQL查询数据库版本 select version() from dual; 版本不对应会出现报错:Jmeter Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

3、JDBC request配置

在取样器(sampler)中添加JDBC request,配置如下: 第一部分,Variable Name Bound to pool declared in JDBC Connection Configuration (填写之前的自定义变量名) 第二部分,Query Type
字段 定义
Select Statement Select语句
Update Statement Update语句
Callable statement  
Prepared Select Statement 参数化 Select语句
Prepared Update Statement 参数化 Update语句
Commit  
Rollback  
AutoCommit(false)  
AutoCommit(true)  
Edit  
第三部分,Query参数化
字段 定义
SQL Query sql 语句 语句结尾不需要添加 ; 变量用 ? 占位
Parameter values 需要传递的变量值,多个变量用 , 分隔
Parameter types 变量类型
Variable Names 保存sql语句返回数据的总行数和返回的数据 用 , 分隔 跳过列用空。 当接收参数少于返回列时,从开始第一列依次往后接收
Result Variable Name 一个 Object 变量存储所有返回值
Query timeout(s) 超时时间;默认0,代表无限时间
Limit ResultSet 和 limit 类似作用,限制 sql 语句返回结果集的行数
Handle ResultSet 如何定义 callable statements 返回的结果集;默认是存储为字符串
SELECT * FROM `user` WHERE shop_id = ? AND user_type = ? AND user_name LIKE ? ? 代表占位符,Parameter values值替代?部分,需要与Parameter types配合使用 sql 中使用占位符时,Query Type 必须选择 Prepared Select Statement 或者 Prepared Update Statement

如果在 sql 语句中使用变量,且是字符串类型,需要加上引号(前提是变量值没有加引号),如 '${name}'

如果在 Parameter values 中使用变量,且是字符串类型,不需要加上引号,只需要在 Parameter types 里写明为 varchar 即可

4、调试取样器查看结果

调试取样器可以在查看结果树中看到在脚本中参数化变量所取得值         ——纸上得来终觉浅,绝知此事要躬行——     参考链接1:https://blog.csdn.net/qq_15347449/article/details/106876027 参考链接2:https://www.cnblogs.com/chenjiuli/p/10116375.html 参考链接3:https://www.cnblogs.com/insane-Mr-Li/p/10725428.html 参考链接4:https://www.cnblogs.com/zichuan/p/9186274.html 参考链接5:https://cloud.tencent.com/developer/article/1651225 参考链接6:https://www.cnblogs.com/qianjinyan/p/10244345.html 参考链接7:https://cloud.tencent.com/developer/article/1651228          

标签:JDBC,数据库,jar,jdbc,https,jmeter,com,连接
来源: https://www.cnblogs.com/guobaozhu/p/14304978.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有