专栏首页云原生压测团队Jmeter使用JDBC对数据库压测
原创

Jmeter使用JDBC对数据库压测

背景说明

压测除了全链路压测外,有时候也需要对指定服务进行性能测试,这里以jmeter工具对数据库进行压测说明。

压测不同数据库需要安装不同的数据库驱动,这里以mysql为例进行压测。

步骤一:数据库驱动安装

1.进入mysql官网,根据不同mysql版本下载对应的数据库驱动mysql-connector-java,下载mysql-connector-java,对应版本参考下图:

2.进去后根据自己操作系统下载压缩包

3.下载完成后解压,找到mysql-connector-java-xxx.jar的jar包,把jar包放到jmeter安装路径下的lib目录下即可,然后打开jmeter应用

步骤二:JDBC Connection Configuration配置

添加一个JDBC Connection Configuration,测试计划->添加->配置元件->JDBC Connection Configuration,用于连接数据库。

Variable Name Bound to pool

数据库连接池配置

配置项

说明

Variable Name for created pool

数据库连接池的名称,填写变量名,和JDBC request中的Variable Name进行绑定

Connection pool Configuration

连接池参数配置,基本保持默认即可,可根据需要进行修改

配置项

说明

Max Number of Connection

数据库最大链接数,一般可设置为0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享

Max Wait (ms)

在连接池中取回连接最大等待时间

Time Between Eviction Runs(ms)

线程可空闲时间如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉

Auto Commit

自动提交sql语句

Read timeout(ms)

等待服务器响应的超时时间

Transaction isolation

事务隔离级别,主要有如下几个选项:(对JMX加解密) TRANSACTION_NODE 事务节点 、TRANSACTION_READ_UNCOMMITTED 事务未提交读、TRANSACTION_READ_COMMITTED 事务已提交读 、TRANSACTION_SERIALIZABLE 事务序列化 、DEFAULT 默认、TRANSACTION_REPEATABLE_READ 事务重复读

Preinit Pool

立即初始化连接池如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间

Connection Validation by Pool

验证连接池是否能响应

配置项

说明

Test While Idle

当连接空闲时测试是否断开

Soft Min Evictable Idle Time(ms)

连接在池中处于空闲状态的最短时间,默认值为5000(5秒)

Validation Query

一个简单的查询,用于确定数据库是否仍在响应

Database Connection Configuration

数据库连接配置

配置项

说明

Database URL

数据库连接 URL,具体说明见注1

JDBC Driver class

数据库JDBC驱动类名,选择对应数据库的数据驱动

Username

数据库登录用户名

Password

数据库登录密码

Connection Properties

建立连接时要设置的连接属性

注1:Database URL: jdbc:mysql://服务器地址:3306/数据库名(比如:jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true。其中&allowMultiQueries=true表示允许执行多条sql)

步骤三:JDBC Request配置

数据库连接配置完成后添加JDBC Request,线程组->添加->取样器->JDBC Request,用于对JDBC请求

Variable Name Bound to pool

数据库连接池配置

配置项

说明

Variable Name for pool declared in JDBC Connection Configuration

数据库连接池的名称,和JDBC Connection Configuration的Variable Name for created pool名字保持一致

SQL Query

sql语句,这里以查询为例

配置项

说明

Query Type

sql语句类型,这里的语句选择的select statement,根据实际测试sql来选择

Query

填写的sql语句,多条语句中间用;分割,语句末尾不加;

JDBC Request

要传输的值

Parameter types

传输值的类型

Variable names

sql执行结果变量名

Result variable names

所有结果当做一个对象存储

Query timeouts(s)

查询超时时间

Limit Result Set

限制 sql 语句返回结果集的行数

Handle Result Set

如何定义 callable statements 返回的结果集;默认是存储为字符串

步骤四:脚本执行

添加查看结果树,线程组->添加->监听器->查看结果树,根据上面步骤对JDBC Connection Configuration和JDBC Request进行编辑完成后,单击页面顶部的开始按钮,运行脚本。

通过查看结果树查看脚本是否运行正常。在左侧导航树中,选择查看结果树,查看请求结果是否符合预期。如果出现请求失败的或者结果返回不符合预期,需要重新调整脚本或者SQL语句。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用JMeter对网站和数据库进行压力测试

    前言 表面看来,JMeter与本系列课程似乎关系不大,但实际上在后面的很多场景中起着重要作用:如何获知修改了某些代码或者设置之后系统性能是提升了还是下降了呢?...

    菲宇
  • 【测试】2020最新版入门实战总结

    loadRuner自动化测试+压测 都行,比较重 Jmeter工具的实战场景 现在市场需求偏向压测,轻量级。 暂选python写自动化脚本

    瑞新
  • Jmeter使用及压测

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它...

    常见_youmen
  • Jmeter接口测试+压力测试

    meter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因为jmeter是j...

    小老鼠
  • Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程...

    北京-宏哥
  • Jmeter系列之数据库操作

    点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。

    ITester软件测试小栈
  • 【测试】Jmeter数据库压测

    瑞新
  • 性能测试-Jmeter数据库JDBC请求

    jmeter中,常常需要连接数据库去断言业务是否正确。因此jdbc数据库关联是必须掌握的核心知识。

    用户6367961
  • 性能工具之Jmeter扩展函数及压测ActiveMQ实践

    首先本文将以Java扩展一个返回两个数值之和函数的例子来简单演示整个过程。 总体来说,二次开发扩展JMeter的函数可以分成下面几个步骤:

    高楼Zee
  • 初识JMeter

    今天在地铁上,一直在琢磨高可用测试的一些补充场景,除了功能之外,就是一些异常场景的考虑,总之,能想到可能发生的任何场景,然后和实际应用场景结合起来,给出...

    jeanron100
  • Jmeter数据库操作

    之前的测试任务中,有涉及到对数据库的操作,于是来探索下jmeter对于数据库操作的功能。

    用户5521279
  • 工具篇 - JMeter之旅01

    前言 在你的日常工作中, 你有没有测试过一个服务能支撑多少用户在线,用户并发? 有没有那么一天,突然跟你说,晚上系统上线你做下性能测试。 ? 什么是JMeter...

    苦叶子
  • Jmeter关联数据库及JDBC请求

    jmeter的一个重要功能就是可以实现对数据库的操作,在接口测试和性能测试中常会用到。

    吾非同
  • 社区精华文章目录

    cailynyu
  • Jmeter系列(2)- Jmeter的详细介绍

    https://www.cnblogs.com/poloyy/category/1746599.html

    小菠萝测试笔记
  • Jmeter简介与安装

    Apache JMeter 是Apache组织的开放源代码项目,是一个纯Java桌面应用,用于压力测试和性能测试。它最初被设计用于Web应用测试但后来扩展到其它...

    清风穆云
  • Jmeter常用获取数据的几种方式

    还没用过聊天机器人?给我发消息试试。 Jmeter在互联网测试中应用非常多,可以用来做接口测试或者性能测试,算是非常不错的一个工具。今天我们来聊聊Jmeter获...

    企鹅号小编
  • 初识性能测试工具JMeter

    JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试他们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创...

    用户5521279
  • Jmeter(六) - 从入门到精通 - 建立数据库测试计划(详解教程)

    在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,因此这篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过...

    北京-宏哥

扫码关注云+社区

领取腾讯云代金券