不断的给数据库施加压力,验证数据库处理的性能 那么我们要怎么才能在jmeter中对数据库进行压测呢?我们可以在jmeter中添加一个叫jdbc的组件来进行连接操作数据库。

  • 电脑安装下载jmeter并解压OK

  • 下载mysql的驱动并把mysql的jar包(mysql-connector-java-8.0.30.jar)复制粘贴到jmeter的D:\apache- jmeter-5.4.3\lib中的lib路径下

  • 启动jmeter, 添加一个JDBC Connection Configuration,连接池配置文件

  • 添加一个线程组,添加驱动jdbc request

1.安装mysql驱动

打开https://dev.mysql.com/downloads/connector/j/地址,选择platform independent,选择zip包进行下载,下载完成后解压zip压缩包

2.放置jar包到lib目录

把解压的压缩包中的mysql-connector-java-8.0.30.jar包放到D:\apache-jmeter-5.4.3\lib这个路径下,就是jmeter的lib路径!

3.添加连接数据库的组件

启动jmeter添加 添加一个JDBC Connection Configuration,测试计划->添加->配置元件->JDBC Connection Configuration,用于连接数据库

定义连接数据库连接池的名称

配置项说明
Variable Name for created pool数据库连接池的名称,填写变量名,和JDBC request中的Variable Name进行绑定

连接池参数配置

基本保持默认即可,可根据需要进行修改

配置项说明
Max Number of Connection数据库最大链接数,一般可设置为0,意思是每个线程都使用单独的数据库连接,线程之间数据库连接不共享
Max Wait (ms)在连接池中取回连接最大等待时间
Time Between Eviction Runs(ms)线程可空闲时间如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉
Auto Commit自动提交sql语句
Read timeout(ms)等待服务器响应的超时时间
Transaction isolation事务隔离级别,主要有如下几个选项:(对JMX加解密) TRANSACTION_NODE 事务节点 、TRANSACTION_READ_UNCOMMITTED 事务未提交读、TRANSACTION_READ_COMMITTED 事务已提交读 、TRANSACTION_SERIALIZABLE 事务序列化 、DEFAULT 默认、TRANSACTION_REPEATABLE_READ 事务重复读
Preinit Pool立即初始化连接池如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间

数据库连接池配置

配置项说明
Variable Name for pool declared in JDBC Connection Configuration数据库连接池的名称,和JDBC Connection Configuration的Variable Name for created pool名字保持一致

4.添加线程组

设置好之后可以添加一个线程组,在线程组内添加一个JDBC Request,线程组>取样器>JDBC Request

  1. 把连接配置中的变量名写到JDBC Request中

  2. 填写你需要执行的sql语句

5.运行线程组

运行后可以看到你的sql语句运行的一些结果了

通过查看结果树查看脚本是否运行正常。在左侧导航树中,选择查看结果树,查看请求结果是否符合预期。如果出现请求失败的或者结果返回不符合预期,需要重新调整脚本或者SQL语句。


绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

​这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐