编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

Jmeter压力测试Mysql数据库(jmeter对数据库进行压测)

wxchong 2025-01-23 21:54:59 开源技术 84 ℃ 0 评论


一、连接MQSQL数据库


1、准备mysql驱动包


jmeter要连接mysql数据库,首先得下载mysql jdbc驱动包,尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题。官网下载地址为:MySQL :: Download Connector/J



下载之后解压放到本地目录~


2、准备好驱动包后,需要把jdbc驱动jar包引入测试计划。


点击测试计划-->点击浏览-->选中mysql驱动jar包-->打开,如下图所示:

或者,把 mysql-connector-java-5.1.28.jar 放到Jmeter安装目录的lib/exp目录下,并重启jmeter.



3、配置JDBC Connection Configuration


在线程组下新建一个JDBC Connection Configuration配置元件,需要用到这个元件来完成数据库的连接,详细配置如下图所示:



这里我们主要关注Variable Name Bound to Pool Database Connection Configuration两部分内容,其他字段可以保持默认值


Variable Name:数据库连接池的名称,在JDBC Request中会用到; Database URL:数据库URL,jdbc:mysql:// IP地址:端口/库名; JDBC Driver Class:JDBC驱动 Username:数据库用户名; Password:数据库密码;


4、配置JDBC Requests


上面我们已经完成了对数据库的连接,但要完成对数据库操作的话呢,还需要新建一个取样器JDBC Request,如下图所示:



Query: 填写要被执行的SQL语句


Parameter values:参数值 Parameter types:参数类型 Variable names:保存sql语句返回结果的变量名 Result variable name:创建一个对象变量,保存所有返回的结果 Query timeout:查询超时时间 Handle result set:定义如何处理由callable statements语句返回的结果


至此一个最简单的jmeter连接mysql数据库的脚本就基本准备好了,接下来添加一个监听器:察看结果树 ,然后运行脚本即可,结果如下图所示:



二、设置报告及定时器


2.1 查看结果树配置



2.2 汇总报告配置



2.3 聚合报告



2.4 响应时间



2.5 统一随机定时器



2.6 观察并发测试效果



设置了等待时间后,可以通过聚合报告清楚的看到每间隔2秒,同时发出200个请求。

如果不添加定时器,Jmeter每个连接线程向服务器发送的请求是不规律的,如果要最大程度的模拟请求压力,就需要用到Jmeter中定时器的功能,设置并发(Synchronizing Timer)、设置等待时间(固定定时器)是最常用的定时器。除了这两个定时器外,Jmeter还提供了其他几个定时器,本质上的目的都是控制请求频次来模拟真实的用户场景。



三、JDBC REQUESTS参数化


方法(一):自定义用户变量,然后进行引用


1.在测试计划界面【用户定义的变量】里定义需要的变量



2.在JDBC Request界面SQL Query输入框中以${变量名}的形式引用变量



或者也可以在JDBC Request里添加一个用户定义的变量

点击JDBC Request --> 点击添加,点击配置元件,点击用户定义的变量



然后定义需要的变量,如下图所示



方法(二):在被执行的SQL语句中使用“?”作为占位符,并传递参数值和参数类型,其中,传递的参数值有常量和变量之分。


1、当传递的参数值是常量时,如下图所示,传入的订单号:



2、当传递的值是变量时,如下图中的所示:




至于这里引用Variable names时,为什么在变量名后面加了一个“_1”,是因为查询到的结果是一个列表,所以不管它查询的是一条还是多条数据,都要通过下标去取它的值,写法就是:变量名_下标。


比如:


id

name

100

Mike

101

Jane


sql语句返回2行2列,id和named的Variable names设置为A、C,那么要取name为Mike的值,就设置为C_1,取name等于Jame的值,就设置为C_2。


四、生成测试报告


生成测试报告命令:


jmeter -n \
-t D:\OpenSources\校园小商品交易测试计划.jmx(脚本的绝对路径) \
-l 校园小商品交易JMeter测试.jtl(自定义的名称) \
-e -o D:\jmeterResult(测试报告的绝对路径)

# example
jmeter -n \
-t D:\OpenSources\test.jmx \
-l test-result.jtl \
-e -o D:\jmeterResult


参数说明:



n: 非GUI模式执行JMeter
t: 脚本文件(.jmx文件)的路径
l: 指定生成测试结果的保存文件(.jtl格式),此文件必须不存在
e: 测试结束后,生成测试报告
o: 用于存放测试报告的路径

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表