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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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”

QPSQueries Per Second每秒查询数

TPSTransactions 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。查询属性默认情况下

hsqldbselect 1 from INFORMATION_SCHEMA.SYSTEM_USERS

Oracleselect 1 from dual

DB2select 1 from sysibm.sysdummy1

MySQLselect 1

Microsoft SQL Server (MS JDBC driver)select 1

PostgreSQLselect 1

Ingresselect 1

Derbyvalues 1

H2select 1

Firebirdselect 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

Usernameroot

passwordxxx

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: 数据库