浅谈配置元件之JDBC连接配置

浅谈配置元件之JDBC连接配置

通过使用“JDBC连接配置”配置元件(JDBC Connection Configuration),您可以轻松地在JMeter测试计划中集成数据库交互能力。本指南将详细介绍如何设置和使用此配置元件来连接数据库并执行SQL查询。

1. 准备工作

下载JDBC驱动
首先,确保您已下载适用于目标数据库的JDBC驱动程序。例如,对于MySQL,您需要下载mysql-connector-java-x.x.xx.jar。可以从数据库提供商的官方网站获取相应驱动。
安装JDBC驱动到JMeter
将下载的JDBC驱动复制到JMeter安装目录的lib文件夹内(或lib/ext文件夹,具体取决于JMeter版本和偏好)。这样做可以确保JMeter能够识别并使用该驱动,无需额外配置。

2. 配置JDBC连接

新建测试计划
● 打开JMeter,创建一个新的测试计划(Test Plan)或者在现有的测试计划中进行配置。
添加JDBC Connection Configuration

  1. 右键点击测试计划(Test Plan)或其他合适的层级(如线程组Thread Group),选择“添加” > “配置元件” > “JDBC Connection Configuration”。
  2. 在JDBC Connection Configuration界面中,常见配置信息如下:
    ○ Variable Name for Created Pool:这是一个变量名,用于后续的JDBC Request中引用此数据库连接。例如,可以设置为MySQLDB。
    ○ Max number of Connections:数据库最大连接数,建议设置0
    ○ Max Wait (ms):连接最大等待时间,单位毫秒;
    ○ Time Between Eviction Runs (ms):线程空闲时间,单位毫秒,当连接池中某个连接在空闲时间为上述设置的时间后没有使用,则被连接关闭
    ○ Auto Commit:自动commit
    ○ Transaction Isolation:事务隔离级别(一般默认)
    ○ Test While Idle:当连接空闲时是否断开
    ○ Soft Min Evictable Idle Time(ms):连接池中处于空闲状态的最短时间
    ○ Validation Query:一个简单的查询,确定数据库是否存在响应;默认为 jdbc 驱动程序的 isValid() 方法需要当Test While Idle 配置为 True
    ○ Database URL:数据库的URL,格式一般为jdbc:[database_type]😕/[hostname]:[port]/[database_name]?[parameters]。例如,MySQL的URL可能是jdbc:mysql://localhost:3306/mydatabase。
    ○ JDBC Driver Class:JDBC驱动的完全限定类名。例如,MySQL的驱动类名为com.mysql.cj.jdbc.Driver。
    ○ Username: 数据库的用户名。
    ○ Password: 数据库的密码。
    ○ 其他可选参数,如超时设置等,根据需要调整。

3. 使用JDBC请求

● 为了执行SQL查询或更新,需要在适当的位置(如线程组内)添加“JDBC Request”取样器。
● 在JDBC Request中,选择之前在“JDBC Connection Configuration”中定义的变量名作为“Variable Name of Pool”。
● 输入SQL语句,选择查询类型(SELECT, UPDATE, INSERT等)。
4. 实例说明
首先编写一个性能测试脚本
在这里插入图片描述
线程组:保持默认参数
JDBC Connection Configuration:
● Variable Name for created pool设置为db;
● Database URL设置为jdbc:mysql://XX.XX.XXX.XX:3306/db
● JDBC Driver class根据实际驱动,本案例设置为:com.mysql.jdbc.Driver
● Username设置为root
● Password设置为passwd
JDBC Request:
● Variable Name for pool declared in JDBC Connection Configuration设置为db
● Query设置为select * from api_request_record;
执行脚本,查看结果树,响应数据的Response Body里面可以看到如下结果
在这里插入图片描述

5. 清理与注意事项

● 使用tearDown Thread Group来执行关闭数据库连接的操作,这有助于在测试结束后清理资源。
● 确保在多用户并发测试时,数据库的配置能够支持足够的连接数。
● 注意处理数据库事务和数据一致性问题,尤其是在执行更新或插入操作时。

6. 总结

通过以上步骤,您可以成功配置JMeter以与数据库进行交互,实现性能测试中对数据库操作的模拟。正确配置JDBC连接是进行复杂应用性能测试的关键一环,能够帮助您全面评估系统的负载能力和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/30781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务架构:解构现代应用程序的未来

目录 前言1. 微服务架构的基本概念1.1 什么是微服务架构1.2 微服务与单体架构的对比 2. 微服务架构的优势2.1 灵活性与可扩展性2.2 持续交付与部署2.3 技术多样性2.4 故障隔离 3. 微服务架构的挑战3.1 服务间通信和数据一致性3.2 运维复杂度3.3 安全性3.4 开发团队的协作 4. 微…

手机铃声下载2个必备技巧,定制化铃声,彰显个性魅力

手机铃声,就像是独特的信号灯,不仅仅是通知我们来电或信息的方式,更是展现个人品位和魅力的武器。手机铃声下载和定制,让你的手机从千万舰队中脱颖而出。在接下来的文章中,我们将详细探讨铃声下载技巧的具体操作步骤&a…

2024人工智能指数报告(二):技术性能

背景 从2017年开始,斯坦福大学人工智能研究所(HAI)每年都会发布一份人工智能的研究报告,人工智能指数报告(AII),对上一年人工智能相关的数据进行跟踪、整理、提炼并进行可视化。这份指数报告被认…

深度学习1 -- 开头

一 前言 感觉用这玩意越来越多,所以想学学。不过没想好怎么学,也没有提纲,买了两本书,一本是深度学习入门,小日子写的。还有一本就是花书。还有就是回Gatech参加线上课程,CS7643。 CS 7643: Deep Learnin…

【stm32-新建工程-寄存器版本】

stm32-新建工程-寄存器版本 ■ 下载相关STM32Cube官方固件包(F1,F4,F7,H7)■ 1. ST官方搜索STM32Cube■ 2. 搜索 STM32Cube■ 3. 点击获取软件■ 4. 选择对应的版本下载■ 5. 输入账号信息■ 6. 出现下载弹框&#xff…

推荐 2 个 牛哔哄哄 的 GitHub 项目

推荐两个开源的 GitHub 项目,一个基于大模型的企业级知识库问答系统,支持管理企业知识库、对话问答、RAG 等功能。 另外一个是计算机视觉的工具箱,使用它你可以在你电脑上实现人体跟踪、分割、检测等一系列计算机视觉的场景。 01 基于 LLM 大…

【unity笔记】二、海洋系统Crest Ocean System插件使用

一、介绍 Crest 是 Unity 技术先进的海洋系统。 它专为性能而设计,并大量使用细节级别 (LOD) 策略和 GPU 加速来实现快速更新和渲染。它还具有高度的灵活性,允许对水形状/泡沫/动态波浪/等进行任何自定义输入,并具有直…

01 基础入门 编写你的第一个 Go 语言程序

从这节课开始,我会带你走进 Go 语言的世界。我会用通俗易懂的语言,介绍 Go 语言的各个知识点,让你可以从零开始逐步学习,再深入它的世界。不管你以前是否接触过 Go 语言,都可以从这个专栏中受益。 现在,让…

时隔一年,SSD大涨价?

同样产品,2T,去年400多到手,今年700。 去年 今年

3ds Max软件下载安装:3D建模软件 轻松开启你的建模之旅!

3ds Max,在建模过程中,网格建模和NURBS建模两大技术发挥着不可或缺的作用。网格建模允许用户通过顶点、边和面等元素的调整,精确地塑造出模型的形态;而NURBS建模则以其优秀的曲线和曲面处理能力,为设计师们提供了更为平…

迅为RK3568驱动教程第十八期-PWM

系统性PWM课程,完全掌握PWM。采用框架学习法,从基础知识、PWM子系统框架、API函数理论由面到点,逐个击破。通过SG90舵机,呼吸灯的控制把理论转为动手能力。最后从零实现输入捕获驱动程序,深入探究,体验一把…

《人工智能导论》书面作业

第 1 章:绪论 1、分别解释人工智能的三个主要学派的代表人物和主要思想,并给出每个学派的一个实际应用实例。 符号主义(Symbolists 或 逻辑主义): 代表人物:马文闵斯基(Marvin Minsky&#xf…

人工智能大模型之开源大语言模型汇总(国内外开源项目模型汇总)

开源大语言模型完整列表 Large Language Model (LLM) 即大规模语言模型,是一种基于深度学习的自然语言处理模型,它能够学习到自然语言的语法和语义,从而可以生成人类可读的文本。 所谓"语言模型",就是只用来处理语言文…

一文带你理清同源和跨域

1、概述 前后端数据交互经常会碰到请求跨域,什么是跨域,为什么需要跨域,以及常用有哪几种跨域方式,这是本文要探讨的内容。 同源策略(英文全称 Same origin policy)是浏览器提供的一个安全功能。同源策略限制了从同一个源加载的…

SN74HC14+陶瓷振子做振荡器的试验初步

面包板搭建,4.5V电池供电。 注意我用杜邦线插1脚并缠绕到小频谱的天线上面,如果直接用杜邦线转sma。请先过衰减器。 本想试验一下465khz用SN74HC14做振荡器,实验了很多次,无法起振。 用1M,4M的也无法起振,…

JavaSE 面向对象程序设计 正则表达式

正则表达式 正则表达式(Regular Expression,简称Regex)是用于匹配文本中模式的字符串表达式。它由普通字符(例如字母、数字)和特殊字符(称为元字符)组成,可以非常灵活地定义搜索模式…

[问题记录]Qt QGraphicsItem 移动时出现残影

目录 1.问题现象 2.问题原因 3.修改方案 1.问题现象 自定义 QGraphicsItem 时,绘制rect,对象移动时出现残影。 2.问题原因 直接原因是view未刷新的问题,所以网上有人使用方案 setViewportUpdateMode(QGraphicsView::FullViewportUpdate…

Linux下更新curl版本

一、前景 由于低版本的curl存在一定的漏洞,会对我们的服务器安全造成问题,所以,我们需要将curl由低版本安装到高版本。 二、步骤 1、首先检测服务器安装的curl版本 curl --version 2、查看服务器安装的curl的安装包 rpm -qa curl 3、卸载旧…

LabVIEW电动汽车核心部件检测系统

LabVIEW开发的电动汽车核心部件检测系统,通过硬件接入板和数据采集卡实现信号采集和分析。系统具备智能诊断、模块化设计和用户友好的特点,能够快速、精确地定位故障,提高电动汽车的维护效率和可靠性,支持新能源汽车市场的快速发展…

大数据助力电商发展||电商API接口接入

伴随互联网尤其是移动互联网的高速发展,电子商务已经成为人们生活中不可或缺的一部分,人们的购物理念和消费模式正在发生颠覆性的转变。基于天然的数据优势,电子商务平台利用大数据计算技术不断实施数据的累积、分析和处理,消费者…