Jmeter用jdbc实现对数据库的操作

ops/2024/10/18 12:24:49/

        我们在用Jmeter进行数据库的操作时需要用到配置组件“JDBC Connection Configuration”,通过配置相应的驱动能够让我们通过Jmeter实现对数据库的增删改查,这里我用的mysql数据库一起来看下是怎么实现的吧。

1.驱动包安装

        在安装驱动之前我们要先查看当前数据库的版本,需要选择合适的驱动进行安装,如果数据库版本是5.X就用5.X的驱动,如果数据库版本是8.0以上的就要用8.0对应的驱动,执行sql可以看到我的数据库版本是8.2.0,如下图所示。

select version() from dual;

         安装驱动有2种方式,第一种是将下载好的驱动包放置到jmeter/lib目录下,另一种是在测试计划页面添加驱动jar包。

1.1.手动放置驱动包

        将下载好的对应的驱动放置在jmeter/lib目录下,放置好了之后然后重启Jmeter,如下图所示。

1.2.导入驱动包

        在测试计划页面底部指定引入包的路径,如下图所示。

2.JDBC设置

        在线程组下新建配置组件“JDBC Connection Configuration”,配置页面有很多参数,实际上我们只用设置几个,如下图所示。

Variable Name for created pool: 【必填】,给连接设置变量名,供JDBC Request取样器调用。

 Database URL:jdbc:mysql://{ip}:{port}/{dbname}?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC。

JDBC Driver class:连的是mysql数据库,所以选择“com.mysql.jdbc.Driver”。

Username&Password:当前数据库的账号和密码。

3.实现查询和新增

        在将jdbc的连接配置配置好了之后,我们可以通过新增JDBC Request取样器来对数据库进行增删改查操作,如下所示。

3.1.实现查询

        在JDBC Request取样器页面Variable Name of Pool declared in JDBc Connection Configuration值设置为需要引用的连接配置,比如我们在上面设置的“test”,然后Query Type选择“Select statement”。

        实际上在Jmeter中增删改查只有2种type,查询使用的type为“Select statement”,增加、删除、修改对应的type都是同一种为“Update statement”,然后维护对应的sql。

        在添加查看结果树之后,点击执行按钮,可以看到响应成功,如下图所示。

3.2.实现插入

        在上面我们提到过,增加、删除、修改对应的type都是同一种为“Update statement”,当我们要进行新增操作的时候,同样需要新增JDBC Request取样器,Variable Name of Pool declared in JDBc Connection Configuration值设置为“test”,Query Type选择“Update statement”,维护对应的sql,添加查看结果树,点击执行按钮,可以看到响应成功,如图所示。

4.遇到的问题

        在实际测试过程中总共遇到2个问题,在这里简单的描述下。

4.1.无法连接成功

        遇到这种问题通常是驱动的jar包缺失或者当前驱动版本和数据库的版本不一致导致,对应的报错信息如下:Cannot create PoolableConnectionFactory (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)。

解决方法:将和数据库对应版本的驱动放置在正确的路径下

4.2.时间无法识别

        之前数据库连接的URL使用的是:jdbc:mysql://{ip}:{port}/{dbname}?useUnicode=true&characterEncoding=utf8,在执行的时候报错如下:Cannot create PoolableConnectionFactory (The server time zone value ‘?

解决方法:如果遇到这个报错,可以在原先的URL后加上&serverTimezone=UTC,完整的URL如下:jdbc:mysql://{ip}:{port}/{dbname}?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC。

 

 


http://www.ppmy.cn/ops/42022.html

相关文章

软件工程期末复习(3)软件生命周期

软件生命周期 一般问题的解决过程: 问题的阐述:界定问题,用较宽的范围而不是细节来定义和描述待解问题; 问题的分析:问题定义的提炼,把问题分成可以理解和处理的子问题,进而提供基本细节&…

数字孪生的数据采集与处理技巧

数字孪生是指将实际物理系统的数学模型与实时数据相结合,构建出虚拟的数字副本。这种模型可以帮助我们更好地理解、管理和优化真实世界的复杂系统。然而,在构建高效的数字孪生模型之前,我们需要解决数据采集和处理的关键问题。 首先&#xf…

HTML静态网页成品作业(HTML+CSS+JS)——华为商城网页(1个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,使用Javacsript代码实现首页图片切换轮播效果,共有1个页面…

2025秋招Java还是c++?

一、我的编程经 说说我的编程经历,在C和Java之间我经历了几个阶段: 大学期间,我浅尝辄止地学习了一段时间的Java,但后来放弃了,开始学习C/C。本科毕业后,我选择攻读硕士学位,并一直专注于C的学…

机器人计算力矩控制

反馈线性化: 反馈线性化是一种控制系统设计方法,其目标是通过状态空间的坐标变换和控制变换,使得非线性系统的输入-状态映射或输入-输出映射反馈等价于线性系统。这样,就可以应用线性系统的控制理论来实现非线性系统的控制。在机…

SpringBoot @AllArgsConstructor和final 代替 @Autowired

Springboot官方建议使用final来修饰成员变量,然后通过构造方法来进行注入原因:final修饰的成员变量是不能够被修改的,反射那就没办法了。 spring代替 Autowired(lombok相关注解) NoArgsConstructor后会 生成无参的构造方法RequiredArgsConst…

linux系统(ubuntu)调用科大讯飞SDK实现语音识别

1. 科大讯飞官网 登录注册实名制 2. 点击控制台,创建应用 点击左侧的语音听写,右边下滑选择Linux,点击下载 选择Linux平台,普通版本,语音听写,SDK下载 此时将得到一个压缩包,选择的功能不…

zblog中用户中心-邀请码注册插件的导出功能补充

自己加了一个导出未使用的邀请码功能,可惜我不是入驻作者,没有权限发布,之前被一条大河拒了,他说我抄他代码,不给我过审还冷嘲热讽,我一气之下,就没继续申请了,话说我是专业搞java开…