网站首页 > 开源技术 正文
一、连接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: 用于存放测试报告的路径
猜你喜欢
- 2025-01-23 聊聊Spring Boot几个版本的区别(springboot版本号有哪些)
- 2025-01-23 Python和 MySQL 数据库在实际工作中的小白入门应用
- 2025-01-23 mysql连接泄漏问题排查(mysql连接状态查询)
- 2025-01-23 Python 数据库操作:连接 MySQL 和 PostgreSQL 的方法详解
- 2025-01-23 最简洁详细的SSM框架整合(最简洁详细的ssm框架整合模型)
- 2025-01-23 一款好用的数据库文档生成工具-Screw
- 2025-01-23 如何在Jmeter中使用JDBC Connection Configuration连接数据库?
- 2025-01-23 一个时间戳精度问题,引发了一个MySQL血案
- 2025-01-23 SpringBoot 实现静态、动态定时任务,本地动态定时任务调度
- 2025-01-23 Mybatis-Flex初体验(mybatisif)
你 发表评论:
欢迎- 05-14WP8.1 GDR1的NTP时间同步没有解决问题
- 05-14抑郁症与焦虑症(四):补充色氨酸,5HTP的作用
- 05-14ntp服务器多久同步一次呢
- 05-14简单三步,轻松解决NVR时间不同步问题
- 05-14Linux的300+个真实运维场景——19 NTP 配置与管理
- 05-14海康威视录像机时间不准怎么办录像机无法查看回放录像,NTP校时
- 05-14安全加倍,解密极氪001电池安全技术
- 05-14海康威视录像机NTP服务器
- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)