JMeter数据库性能测试指南:全面掌握基础操作

news/2024/10/17 20:34:08/

1.网络请求时间

2.数据库查询的时间

数据库性能指标

TPS:每秒事务数(一秒钟服务器处理的事务数,事务指,请求出去到响应回来的整个过程的时间)

QPS:每秒查询量(就是数据库每秒执行的SQL数量,包含insert/select/update/delete)

连接数(连接数是否释放)

查询缓存(不进行select,直接从缓存拿数据,缓存机制可以设置)

2023Jmeter性能测试项目实战教程,十年测试大佬手把手教你做性能!_哔哩哔哩_bilibili2023Jmeter性能测试项目实战教程,十年测试大佬手把手教你做性能!共计11条视频,包括:1.什么是性能测试以及性能测试的价值和目的、2.真实企业性能测试指标详解以及指标测算、3.真实企业中性能测试流程以及细节剖析等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV1u8411f7u4/?spm_id_from=333.337.search-card.all.click

事务数的计算:Com_commit 提交次数(成功的事务)  Com_rollback回滚次数(失败的事务)相加

QPS的计算 Questions / Uptime 即可得到的该指标的值

QPS查询:mysql>show global status like 'Questions';

mysql>show global status like 'Uptime'

数据库容易出现的问题:

1.连接池容易爆掉

2.慢查询

Jmeter需要一个插件才能连接数据库,一个mysql-connector-java-5.1.7-bin.jar包,放在apache-jmeter-4.0>lib>ext下即可

连接数据库第一步:

1.“添加”-》“配置元件”-》“JDBC Connection Configuration”

QPS(Queries Per Second,每秒查询数)

TPS(Transactions Per Second,每秒处理事务数)

通过show status命令查看数据库运行状态,会有300多条状态信息记录,其中有几个值帮可以我们计算出QPS和TPS,如下:

Uptime:服务器已经运行的时间,单位秒

Questions:已经发送给数据库查询数

Com_select:查询次数,实际操作数据库的

Com_insert:插入次数

Com_delete:删除次数

Com_update:更新次数

Com_commit:事务次数

Com_rollback:回滚次数

计算方法:

1、基于Questions计算出QPS

mysql> show global status like 'Questions';

mysql> show global status like 'Uptime';

QPS = Questions / Uptime

2、基于Com_commit和Com_rollback计算出TPS:

mysql> show global status like 'Com_commit';

mysql> show global status like 'Com_rollback';

mysql> show global status like 'Uptime';

TPS = (Com_commit + Com_rollback) / Uptime

3、另一种QPS计算方式:

基于Com_select、Com_insert、Com_delete、Com_update计算出QPS:  

mysql> show global status where Variable_name in('com_select','com_insert','com_delete','com_update');

等待1秒再执行,获取间隔差值,第二次每个变量值减去第一次对应的变量值,就是QPS。

4、另一种TPS计算方式:

mysql> show global status where Variable_name in('com_insert','com_delete','com_update');

计算TPS,就不算查询操作了,计算出插入、删除、更新四个值即可。

配置JDBC Request:

1、重要参数说明:

  Variable Name:数据库连接池的名字,需要与JDBC Connection ConfigurationVariable Name Bound Pool名字保持一致

  Query:填写的sql语句未尾不要加“;”

  Parameter valus:参数值

  Parameter types:参数类型,可参考:Javadoc for java.sql.Types

  Variable names:保存sql语句返回结果的变量名

  Result variable name:创建一个对象变量,保存所有返回的结果

  Query timeout:查询超时时间

Handle result set:定义如何处理由callable statements语句返回的结果

配置JDBC Connection Configuration

(1) Variable Name Bound to Pool

Variable Name, 创建池的变量名 。这个变量在后面介绍的 JDBC Request 请求中用到。 

(2) Connection Pool Configuration

Max Number of Connections    池中允许的最大连接数。在大多数情况下,将其设置为零(0),这意味着每个线程都将拥有自己的池,其中只有一个连接,即线程之间不共享连接。如果您真的想使用共享池,那么将 max count 设置为与线程数量相同,以确保线程不会彼此等待。

Max Wait (ms)   在连接池中取回连接最大等待时间
中文:如果在试图检索连接过程中(取回连接)超过所设置期限,连接池抛出一个错误

Time Between Eviction Runs (ms)     疏散时间
中文:在空闲对象驱逐线程运行期间,可以休眠的毫秒数。当非正值时,将运行无空闲对象驱逐器线程。(默认为“60000”,1分钟)(如果当前连接池中某个连接在空闲了time Between Eviction Runs Millis时间后任然没有使用,则被物理性的关闭掉。)

Auto Commit    自动提交sql语句
中文:打开或关闭连接的自动提交。
原文:Turn auto commit on or off for the connections.

(3) Connection Validation by Pool 

这是Jmeter用来检验数据库连接是否有效的一种机制,超过5秒没有使用的话,就会用validation query去测试下这个连接是否有效

Test While Idle   当空闲的时候测试连接是否断开
中文:测试连接池的空闲连接,验证查询将会被使用去测试。
原文:Test idle connections of the pool, see BasicDataSource.html#getTestWhileIdle . Validation Query will be used to test it.

Soft Min Evictable Idle Time(ms)   
中文:最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000(5秒)
Validation Query :验证查询 。一个简单的查询,用来确定数据库是否仍在响应。 这个验证查询在池创建中使用,即使“空闲测试”建议查询只在空闲连接上使用,也可以验证它。

验证查询的列表可以配置 jdbc.config.check。查询属性,默认情况下:

hsqldb:select 1 from INFORMATION_SCHEMA.SYSTEM_USERS

Oracle:select 1 from dual

DB2:select 1 from sysibm.sysdummy1

MySQL:select 1

Microsoft SQL Server (MS JDBC driver):select 1

PostgreSQL:select 1

Ingres:select 1

Derby:values 1

H2:select 1

Firebird:select 1 from rdb$database

 (4) Database Connection Configuration

Database URL: jdbc:mysql://服务器地址:3306/数据库名  

  (比如:jdbc:mysql://ip:3306/数据库名?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true)

    备注:“&allowMultiQueries=true” 这句话的意思呢  是为了在JDBC中执行多条select语句的时候用的!

JDBC Driver class:数据库JDBC驱动类名:com.mysql.jdbc.Driver

Username:数据库连接用户名

password:数据库连接密码

例如(上面url或class如有问题,可试一试下面的):

Database URL:  jdbc:mysql://localhost:3306/information_schema?serverTimezone=GMT%2B8

JDBC Driver class:  com.mysql.cj.jdbc.Driver

Username:root

password:xxx


http://www.ppmy.cn/news/126440.html

相关文章

Linux 之 del_timer 和 del_timer_sync

del_timer 函数 del_timer函数用于删除一个定时器,不管定时器有没有被激活,都可以使用此函数删除。在多处理器系统上,定时器可能会在其他的处理器上运行,因此在调用 del_timer函数删除定时器之前要先等待其他处理器的定时处理器函…

【Linux】——调试器-gdb的使用

序言: 本期,我将带领大家学习的关于linux下的调试器gdb的使用,废话不多说跟着我一起去看看吧!! 目录 前言 (一)背景介绍 1、debug模式和release模式 2、为什么Release不能调试但DeBug可以调…

Catia 电吹风壳体设计

1.绘制草图 2.对称、创建圆弧、相交 3.插入线框圆 4.多截面实体 5.绘制草图、桥接曲面 6.绘制草图、拆解 7.创建平面、绘制草图 8.创建平面、绘制草图 9.多截面曲面 10.隐藏所有曲线和点对象 11.修剪曲面 12.绘制草图、填充曲面 13.曲面接合 14.绘制草图、拉伸 15.偏移曲面 16.…

澳洲站:电吹风AS/NZS 60335.2.23: 2017 安全标准测试

电吹风 重要: 如果您在亚马逊商城销售商品,则必须遵守适用于这些商品和商品信息的所有联邦、州/省/直辖市/自治区和地方法律以及亚马逊政策。 亚马逊政策要求通过亚马逊网站销售的电吹风必须符合特定标准的检测要求。要在亚马逊商城销售这类商品&#x…

生成突变体(实际问题)

生成突变体 变异算子 我们通常使用突变算子来生成突变体 操作员可能是,例如: 用 * 替换 用另一个变量 y 替换表达式中的变量 x 用另一个变量替换赋值的 LHS 上的变量 x变量 y 删除一个声明 在计算机编程中,术语“LHS”代表“左侧”。 它是…

尼得科Nidec风扇4015风机和G40R风机介绍

日本电产尼得科(Nidec)是Ameya360旗下的代理品牌之一,它是一家“全球颇具实力的综合马达制造商”。通过不断向市场市场推出以“技术卓越”、“体积紧凑”为优势的一系列马达产品,让尼得科(日本电产)拿下所向披靡的市场竞争力。 如…

风筒电吹风无刷驱动设计-电吹风无刷电机PCBA方案设计

1、电吹风市场现状 近年来伴随居民消费实力和意愿的提升,消费者对产品品质和功能的需求日益增加。随着电吹风产品的升级革新,零售额不断增长。数据显示,2021年,电吹风全年零售额53.8亿元,同比增长10.6%,零…

电吹风哪个牌子比较好?

呃。。我不敢回答你这个问题...我怕我辛辛苦苦打了半天的字,被别人一复制就全白费劲了...- -! 从我自身来说:我用过飞利浦HP4884 功率是1200w 57恒温 没有负离子 我同学用HP4886 1400w 57恒温 带有负离子恒温都不伤头发的 负离子更加养护头…