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

我们在用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。

相关推荐
青草地溪水旁17 分钟前
mysql_use_result的概念和使用案例
数据库·mysql
cqths26 分钟前
.NET 9.0 的 Blazor Web App 项目、Bootstrap Blazor 组件库、自定义日志 TLog 使用备忘
数据库·c#·.net·web app
程序研1 小时前
mysql之group by语句
数据库·mysql
HaoHao_0103 小时前
AWS Outposts
大数据·服务器·数据库·aws·云服务器
HaoHao_0103 小时前
VMware 的 AWS
大数据·服务器·数据库·云计算·aws·云服务器
娶个名字趴3 小时前
Redis(5,jedis和spring)
数据库·redis·缓存
小光学长3 小时前
基于vue框架的的信用社业务管理系统设计与实现4gnx5(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
鲁班班3 小时前
MySQL通过binlog恢复数据
数据库·mysql
Elastic 中国社区官方博客5 小时前
将 OneLake 数据索引到 Elasticsearch - 第二部分
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索
Joeysoda5 小时前
MySQL 基础学习(1):数据类型与操作数据库和数据表
数据库·mysql·oracle·database