当前位置: 首页 > news >正文

10分钟学会数据库压力测试,你敢信?

目录

前言

查看数据库版本

下载驱动:

菜单路径

配置

Variable Name Bound to Pool模块配置

Connection pool configuration模块配置

Database Connection Configuration模块配置

菜单路径

Variable Name Bound to Pool

脚本结构

脚本(执行查询语句)

结果

总结


前言

很多人提到jmeter时,只会说到jmeter进行接口自动化或接口性能测试,其实jmeter还能对数据库进行自动化操作。个人常用的场景有以下:

1. 对自动化产生的数据,进行删除

2. 不断修改数据,进行多业务场景测试

……(更多使用场景需要个人根据自己不同的需求去挖掘)

大家都知道,在逛淘宝/天猫等电商平台时,页面显示的数据一定要及时的呈现,否则会影响用户体现,所以对数据库的性能测试就必不可少。

本文主要通过对XXXX订单系统的订单数进行自动化查询和数据库查询速度进行压力测试。

在使用jmeter对数据库进行压力测试之前需要掌握两个基本知识:

1.如何使用jmeter连接数据库 

2.如何使用jmeter执行数据库相关操作命令

环境准备

查看数据库版本

使用navicat查看数据库版本

下载驱动

地址:

下载成功后放入jmeter安装路径的ext文件夹下,并解压

驱动jar文件放到ext文件夹后需要重新启动jmeter才可生效

若没有下载驱动,则运行时报错:Response message: java.sql.SQLException: Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

数据库配置信息

Jmeter提供JDBC Connection Configuration用于配置数据库的连接信息

菜单路径

配置

Variable Name Bound to Pool模块配置

Variable name for created pool:创建数据库连接池变量名称

Connection pool configuration模块配置

该模块配置一般使用默认值即可

1. Max Number of Connections: 数据库的最大连接数

2. Max Wait(ms):最大等待时长

3. Time Between Eviction Runs (ms):

4. Auto Commit: 自动提交。有三个选项,true、false、编辑(自己通过jmeter提供的函数设置),默认true,所以修改数据库时会直接真实修改

5.  Transaction Isolation: 事务间隔级别设置,默认default

Database Connection Configuration模块配置

该模块配置主要用于配置数据库的连接信。

1. Database URL:jdbc:mysql://数据库ip/数据库端口/数据库名称

2. JDBC Driver class:驱动名称,下拉选项选择

3. Username:用户名

4. Password:密码

数据库请求

JDBC Request用于执行SQL语句

菜单路径

配置

Variable Name Bound to Pool

Variable name of pool declared in JDBC connection configuration:数据库连接池的变量名称

因为连接数据库是需要在JDBC Connection Configuration中配置好相关连接信息的,然后赋予一个变量名称,那么JDBC Request想要去访问数据库,就必须通过这个配置好的变量名称去连接,所以JDBC Reques就需要通过读取JDBC Connection Configuration的变量中的信息

Query type(SQL语句类型)

Select statement:查询语句,仅支持单条语句

Update statement:修改语句,支持多条语句

……其他类型可自行百度

初级实践-数据库查询

在进行接口性能测试之前,必须先学会基础的接口自动化测试。

脚本结构

添加监听器View Results Tree查看脚本执行结果,脚本结构如下:

脚本(执行查询语句)

结果

进阶实践-数据库查询压力测试

在接口自动化的基础上,配置需要的压测数据,就可以进一步对接口进行性能测试了。

需要注意的配置:

1. 并发数的设置

2. 添加View Results Tree时,为了避免对性能测试结果造成影响,需要设置为仅展示错误信息

3. 添加Graph Results图形结果,这个监听器展示接口请求响应时间的平均值、中值、偏离值、吞吐量

4. 添加Response Time Graph响应时间图表,这个监听器将请求响应时间以折线图的方式展示出来

部分效果如下图

总结

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,与我一起学习交流。

 

http://www.lryc.cn/news/7904.html

相关文章:

  • 论文阅读 | Video Super-Resolution Transformer
  • 7-6 带头节点的双向循环链表操作
  • npm publish 、 npm adduser 提示 403 的问题
  • Java 8的函数式接口使用示例
  • 2023年企业如何改善员工体验?为什么员工体验很重要?
  • 设计模式:桥接模式让抽象和实现解耦,各自独立变化
  • C++学习记录——십 STL初级认识、标准库string类
  • 【redis】redis缓存与数据库的一致性
  • XCP实战系列介绍12-基于Vector_Davinci工具的XCP配置介绍(一)
  • Unity Material详解
  • 碰撞检测算法分类
  • 代码随想录第十二天(
  • 电源模块 DC-DC直流升压正负高压输出12v24v转±110V±150V±220V±250V±300V±600V
  • 【动画图解】这个值取对了,ViewPager2才能纵享丝滑
  • CSDN每日一练:小豚鼠搬家
  • Dockerfile命令及实践构建一个网站
  • [VMware]Ubuntu18.04 网络图标消失
  • 国产C2000,P2P替代TMS320F280049C,独立双核32位CPU,主频高达400MHz
  • 二十五、Gtk4-多线程分析
  • JVM基础学习
  • ASML逆袭史:人、资金、技术,缺一不可
  • MongoDB 覆盖索引查询
  • Flink Checkpoint 中的Aligned Checkpoint 和 Unaligned Checkpoint
  • C++快速入门
  • ubuntu18.04 network有线网络图标缺失解决记录
  • java对象克隆和面向对象的设计原则
  • 传透式血氧仪设计方案
  • 让逆向工程师们头疼的代码混淆,就像永远也走不出的“浪浪山”
  • 【拓展】基于机器学习的心脏病预测方法(14)——心脏病数据集补充
  • 深度解读Webpack中的loader原理