不断的给数据库施加压力,验证数据库处理的性能 那么我们要怎么才能在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
-
把连接配置中的变量名写到JDBC Request中
-
填写你需要执行的sql语句
5.运行线程组
运行后可以看到你的sql语句运行的一些结果了
通过查看结果树查看脚本是否运行正常。在左侧导航树中,选择查看结果树,查看请求结果是否符合预期。如果出现请求失败的或者结果返回不符合预期,需要重新调整脚本或者SQL语句。
最后: 可以在我的VX公众号:【自动化测试老司机】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。也可以和我交流互动哈
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!