注册
Jmeter连接DM8批量构建测试数据
专栏/培训园地/ 文章详情 /

Jmeter连接DM8批量构建测试数据

YL_1 2024/02/02 1260 1 0
摘要

在产品功能和性能测试过程中,为了验证某些场景,需要构造大量的数据表,插入大量数据,进行并发查询,除了可以使用存储过程进行循环批量创建表/插入数据外,我们还可以利用jmeter压测工具来快速高效地实现批量建表/批量插入数据/并发查询,下面为大家详细介绍具体操作。

一、jmeter连接DM数据库

1、下载安装配置jmeter

下载地址:jmeter官网 
下载apache-jmeter-5.6.3.zip到本地后,解压,本地安装配置好jdk1.8即可。

2、 添加JDBC驱动

从dm安装目录的\drivers\jdbc下面找到DmJdbcDriver驱动文件复制到jmeter的lib目录下,使用哪个版本的驱动文件根据JDK版本确定,比如我使用的是JDK1.8,所以复制对应的DmJdbcDriver18.jar:
9ee6dc95e3776729e54b92bc0f398d1.png

3、配置JDBC Connection Configuration

启动jmeter,创建测试计划,在测试计划下添加配置元件-JDBC Connection Configuration:
image.png
在JDBC连接配置元件中,设置以下参数:

  • Variable Name for created pool:创建的数据库连接池变量名称,如:DM
  • Database URL:达梦数据库的连接URL,如:jdbc:dm://10.8.83.21:5236
  • JDBC Driver Class:达梦数据库的JDBC驱动类名,如:dm.jdbc.driver.DmDriver
  • Username/Password:数据库的用户名和密码

4、配置JDBC Request

创建线程组,在线程组中添加取样器-JDBC Request
image.png
在JDBC Request中,设置以下参数:

  • Variable Name of Pool declared in JDBC Connection Configuration:输入JDBC Connection Configuration中定义的连接池名字:DM
  • Query Type:需更改为Select Statement,下面编辑窗口中编辑对应的SQL语句,比如select * from v$instance;

5、测试连接

在线程组中添加监视器-查看结果树,执行线程组,检查数据库是否可以正常连接:
image.png

二、批量查询

使用场景:在搭建DM读写分离集群后,要测试读写分离集群配置的读写分离分发比例是否生效;
设置方式

1、配置JDBC Connection Configuration

基于第一步的设置,修改JDBC Connection Configuration中的Database URL,设置分发比例为20%,配置如下:
jdbc:dm://10.8.83.21:11236?rwSeparate=1&rwPercent=20

2、配置JDBC Request

基于第一步的设置,修改JDBC Request中的query语句为:
select mode$ from v$instance;

3、配置线程组循环次数

调试通过后,设置线程组的循环次数为100次,为了比较好的查询测试结果,给JDBC Request添加断言,设置的断言是响应文本包含STANDBY,所以失败的响应结果就是PRIMARY)
image.png
image.png

三、批量创建表

使用场景:在测试数据库连接工具时,需要测试对象导航树中子节点数量太大时,节点展开速度和节点超过500条时出现查看全部对象的按钮,这时需要批量构建大量的数据库表来用于测试;
设置方式

1、设置随机变量

在第一步的基础上,新建一个线程组,然后选中线程组右键-添加-配置原件-随机变量,批量生成表时表名不能重复,随机变量用于在生成表时表名不重复:
image.png

  • 变量名称:用于设置随机变量名称,后面的JDBC请求里面的表名会用到
  • 配置随机发生器:配置随机数的最小值和最大值

2、配置JDBC Request

image.png
在JDBC Request中,设置以下参数:

  • Variable Name of Pool declared in JDBC Connection Configuration:输入JDBC Connection Configuration中定义的连接池名字:DM
  • Query Type:需更改为Callable Statement,下面编辑窗口中编辑对应的SQL语句,写一个create table语句,表名需要加入上面定义的随机变量,比如T${random},这样线程组循环执行时,表名不会重复;

3、调试线程组

在线程组中添加监视器-查看结果树,执行线程组,检查JDBC请求是否可以成功执行:
image.png

4、配置线程循环次数,批量生成表

image.png
执行完成后,可以看到表已经生成成功了
image.png

四、批量插入数据

使用场景:在测试数据库时,需要往业务表中插入大量数据
设置方式

1、设置随机变量

在第一步的基础上,新建一个线程组,然后选中线程组右键-添加-配置原件-随机变量,批量插入数据时数据不重复:
image.png

  • 变量名称:用于设置随机变量名称,后面的JDBC请求里面的字段名会用到
  • 配置随机发生器:配置随机数的最小值和最大值

2、配置JDBC Request

image.png

在JDBC Request中,设置以下参数:

  • Variable Name of Pool declared in JDBC Connection Configuration:输入JDBC Connection Configuration中定义的连接池名字:DM
  • Query Type:需更改为Callable Statement,下面编辑窗口中编辑对应的SQL语句,写一个insert into语句,value值中需要加入上面定义的随机变量,比如${ID},这样线程组循环执行时,插入的数据不会重复;

3、调试线程组

image.png
在线程组中添加监视器-查看结果树,执行线程组,检查JDBC请求是否可以成功执行:

4、配置线程循环次数,批量插入数据

image.png
执行完成后,可以看到数据已经插入成功了
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服