10分钟学会数据库压力测试

1789 篇文章 51 订阅
1221 篇文章 21 订阅

在这里插入图片描述

01 前言

很多人提到jmeter时,只会说到jmeter进行接口自动化或接口性能测试,其实jmeter还能对数据库进行自动化操作。

个人常用的场景有以下:

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

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

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

大家都知道,在逛淘宝/天猫等电商平台时,页面显示的数据一定要及时的呈现,否则会影响用户体现,所以对数据库的性能测试就必不可少。本文主要通过对XXXX订单系统的订单数进行自动化查询和数据库查询速度进行压力测试。

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

  • 如何使用jmeter连接数据库
  • 如何使用jmeter执行数据库相关操作命令

02 环境准备

查看数据库版本

使用navicat查看数据库版本

图片

下载驱动:

地址:https://dev.mysql.com/downloads/

图片

图片

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

图片

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

若没有下载驱动,则运行时报错:

Response message: java.sql.SQLException: Cannot load JDBC driver class ‘com.mysql.jdbc.Driver’

图片

03 数据库配置和请求

1、数据库配置

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

菜单路径
图片

配置

  • Variable Name Bound to Pool模块配置

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

  • Connection pool configuration模块配置

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

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

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

③ Time Between Eviction Runs (ms):

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

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

  • Database Connection Configuration模块配置

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

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

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

③ Username:用户名

④ Password:密码

图片

2、数据库请求

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的变量中的信息

3、Query type(SQL语句类型)

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

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

……其他类型可自行百度

图片

04 实践

1、初级实践-数据库查询

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

脚本结构

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

图片

脚本(执行查询语句)
图片

结果
图片

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

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

需要注意的配置:

  • 并发数的设置
  • 添加View Results Tree时,为了避免对性能测试结果造成影响,需要设置为仅展示错误信息
  • 添加Graph Results图形结果,这个监听器展示接口请求响应时间的平均值、中值、偏离值、吞吐量
  • 添加Response Time Graph响应时间图表,这个监听器将请求响应时间以折线图的方式展示出来

部分效果如下图:

图片

图片

图片

图片

下面是测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
在这里插入图片描述

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值