Jmeter之MySQL数据库压力测试

Posted 老李学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter之MySQL数据库压力测试相关的知识,希望对你有一定的参考价值。

  • 下载数据库驱动

在用Jmeter连接数据库之前我们首先要先下载一个数据库驱动(mysql-connector-java-X.xx.jar)放到Jmeter的lib路径下。

   登录MySQL官网下载页面https://dev.mysql.com/downloads/,点击connector/J进入驱动下载页面。

选择要下载的连接驱动点击download即可

Jmeter之MySQL数据库压力测试

下载完成后解压,并将驱动mysql-connector-java-8.0.11.jar复制放到Jmeter-lib路径下

Jmeter之MySQL数据库压力测试

  • Jmeter连接数据库

1、创建测试计划,并在测试计划中将数据库驱动添加到class path

Jmeter之MySQL数据库压力测试

2、创建线程组,并在线程组下添加配置元件JDBC ConnectionConfiguration

Jmeter之MySQL数据库压力测试

3、配置JDBC Connection Configuration元件参数

Jmeter之MySQL数据库压力测试

VariableName数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。

Max Numberof Connection数据库最大链接数

MaxWait(ms):最大等待时间

timebetween eviction runs运行时间间隔

Auto Commit自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置)

TransactionIsolation:事务间隔级别设置,主要有如下几个选项:(对JMX加解密)

Jmeter之MySQL数据库压力测试

TRANSACTION_NODE:事务节点

TRANSACTION_READ_UNCOMMITTED:事务未提交读

TRANSACTION_READ_COMMITTED:事务已提交读

TRANSACTION_SERIALIZABLE:事务序列化

DEFAULT:默认

TRANSACTION_REPEATABLE_READ:事务重复读

编辑

Connection Validationby Pool

Jmeter之MySQL数据库压力测试

Test WhileIdle :当空闲的时候测试连接是否断开

Soft MinEvictable Idle Time(ms) :最少的时间连接可能在池中闲置,然后才有资格被闲置的对象驱逐出去,额外的条件是至少在池中保持连接。默认值为5000(5秒)

validationQuery:配置数据库时,属性validationQuery默认值为“select 1”,对于oracle值应为“select 1 from dual”。用来验证数据库连接的语句,这个语句至少是返回一条数据的查询语句。每种数据库都有自己的验证语句。大部分数据库都是select 1。

DatabaseConnection Configuration(这里的配置最重要,决定你可不可以连上数据库)

Jmeter之MySQL数据库压力测试

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

Username:数据库连接用户名

password:数据库连接密码

4、JDBC Connection Configuration配置元件主要的功能就是连接数据库,为JDBC request做好准备,但是在连接的时候会遇到一些问题,比如说连接不上等,如果遇到这类问题可以参考XXXXXX。

  • 在线程组下添加JDBC Request取样器

Jmeter之MySQL数据库压力测试

Jmeter之MySQL数据库压力测试

VariableName:选择之前在JDBC Connection Configuration元件中配置好的,这个变量决定这request请求发送命令到那个连接的数据库。

Query Type:要进行的操作类型

Jmeter之MySQL数据库压力测试

  a)  Select statement:查询语句类型

  b)  Update statement:更新语句类型

  c)  Callable statement:可调用语句类型

 d)  Prepared select statement:statement用于为一条SQL语句生成执行计划,如果只执行一次SQL语句,statement是最好的类型,Prepared statement用于绑定变量重用执行计划,对于多次执行的SQL语句,Prepared statement是最好的类型。

  e)  Prepared update statement:用法与Preparedselect statement相似。

  f)  Commit:将未存储的SQL语句结果写入数据库表。

  g)  Rollback:撤销指定SQL语句的过程。

h)  AutoCommit(false):将用户操作一直处于某个事务中,直到执行一条commit提交或rollback语句才会结束当前事务重新开始一个新的事务i)  AutoCommit(true):无论何种情况,都自动提交将结果写入,结束当前事务开始下一个事务Query :要进行的操作

  • 添加监听器:查看结果树和聚合报告

Jmeter之MySQL数据库压力测试

Jmeter之MySQL数据库压力测试

  • 运行脚本,查看聚合报告和查看结果树

以上便是Jmeter测试数据库的一个简单过程。


以上是关于Jmeter之MySQL数据库压力测试的主要内容,如果未能解决你的问题,请参考以下文章

使用JMeter进行MySQL的压力测试

Tomcat优化之Apache Jmeter压力测试工具

JMeter进行简单的数据库(mysql)压力测试

jmeter 压力测试地址占用

JMeter进行简单的数据库(mysql)压力测试

JMeter进行简单的数据库(mysql)压力测试