🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快
很多人提到 jmeter 时,只会说到 jmeter进行接口自动化或接口性能测试,其实jmeter还能对数据库进行自动化操作。个人常用的场景有以下:
1. 对自动化产生的数据,进行删除
2. 不断修改数据,进行多业务场景测试
……(更多使用场景需要个人根据自己不同的需求去挖掘)
大家都知道,在逛淘宝/天猫等电商平台时,页面显示的数据一定要及时的呈现,否则会影响用户体现,所以对数据库的性能测试就必不可少。
本文主要通过对XXXX订单系统的订单数进行自动化查询和数据库查询速度进行压力测试。
在使用jmeter对数据库进行压力测试之前需要掌握两个基本知识:
1.如何使用jmeter连接数据库
2.如何使用jmeter执行数据库相关操作命令
环境准备
查看数据库版本
使用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'
数据库配置信息
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响应时间图表,这个监听器将请求响应时间以折线图的方式展示出来
部分效果如下图
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。