JMeter 如何与 MySQL 进行整合测试
做性能测试定位瓶颈的时候,定位到是因为某些 SQL 语句的查询慢所影响的,此时我们提出优化方案,肯定希望验证下优化后的 SQL,此时需要借助 JMeter 的 JDBC 请求,那么我们就需要学习 JMeter 如何与 MySQL 进行整合测试。
环境准备
除了 JMeter 外,还需要准备以下软件和 Jar 包:
- MySQL 数据库服务端;
- MySQL 的 JDBC 驱动 mysql-connector-java-5.1.13-bin.jar;
其中 MySQL 数据库下载完成后,按照提示安装即可,安装完毕在 cmd 命令行,执行 net start mysql 将其启动即可;当然这是验证自己本地数据库的操作,如果有远程数据库,那么请忽略此操作。
JDBC 驱动直接放置在 Jmeter/lib 目录下即可。
JMeter 测试 JDBC 请求
JMeter 测试 JDBC 请求,主要就是测试 SQL 查询语句,那么常见的查询语句一般分为以下几种情况:
- 直接查询:即 select * form table;
- 带 where 子句的查询:select a,b from table where a=''。
下面我们先来看第一种情况。
JMeter 测试不带条件的 SQL 语句
具体步骤如下:
(1)选中测试计划,添加 mysql-connector-java-5.1.13-bin.jar:
(2)添加一个线程组:
(3)在线程组下,添加一个 JDBC Connection Configuration(连接数据库组件),专门用来配置所测试的数据库连接信息:
配置信息如下:
(4)在线程组下,添加一个 JDBC Request,填写真正的 JDBC 请求:
配置信息如下:
说明一点:这里用到的 Query Type 为:Select statement,这是一个查询语句类型,如果在 Query 中查询的是一条语句,就可以采用这种查询类型,但是当查询语句多于一条的时候,就不能在使用此查询类型,需要设置 Query Type 为:Callable Statement。
另外:当 JDBC 脚本执行的时候,总是会优先去执行 Select statement 的第一行。
(5)在线程组下,添加查看结果树,运行结果,查看是否成功:
完成以上操作,我们已经可以完成 JMeter 与 MySQL 的集成,并且可以查询 MySQL 数据库;那么如果我们想要每次执行一次查询,查询出一列固定的内容,依次查询出我们需要的列时,就需要借助参数化。
将查询语句参数化
一说到参数化,在 JMeter 里大家就应该想到 CSV Data Set config,本次依旧不例外。
具体步骤如下所示:
(1)在线程组下新增 CSV Data Set config,新建 txt 类型的文件,命名为 jdbd.txt,其内容如下:
配置 CSV Data Set config 如下:
(2)将 JDBC Request 里的 Query 语句设置为:select ${jdbc} from cf_tb_sequence
:
(3)添加一个循环控制器,将循环次数设置为2:
(4)运行后查看下结果树。
第一个 JDBC 请求显示的响应信息为:
第二个 JDBC 请求显示的响应信息为:
经过参数化后,我们可以循环查询每列的数据。
查询指定条件的语句
有些时候我们查询时,需要使用带 where 子句的查询 SQL,在 JMeter 的 JDBC Request 中同样可以实现此功能。
即使用占位符,来替换 SQL 语句中 where 子句指定的部分。
具体步骤如下:
(1)将 JDBC Request 请求中的 Query Type 修改为 Prepared Select Statement:
(2)在 Query 中将 SQL 语句的 where 子句中的参数数值都使用?号进行代替。
举例:我们想要使用如下 SQL 查询语句:
select name,current_value from cf_tb_sequence where name = '0103' or current_value = '44';
我们此时写为:
select name,current_value from cf_tb_sequence where name = ? or current_value = ?;
(3)在下方的 Parameter values 中把值填上,多个值用,分隔,数量与?保持一致(第一个值对应第一个?,以此类推即可):
(4)Parameter types 填为 varchar,多个参数用,分隔,数量与?保持一致(不管什么数据类型均填写为 varchar):
(5)禁用掉 CSV Data Set config,将循环控制器的循环次数变为1,此时运行查看结果树:
可以看到我们成功查询出满足 select name,current_value from cf_tb_sequence where name = '0103' or current_value = '44'
的数据。
结语:
跟大家推荐一个学习资料分享群:747981058,里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!人生是一个逆水行舟的过程,不进则退,咱们一起加油吧!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
PySpider 快速上手
因为工作原因,最近一段时间都在做项目的数据建设工作,涉及到使用Pyspider进行数据的爬取及入库,所以此处系统的整理一下; pyspider简介 一个国人编写的强大的网络爬虫系统并带有强大的WebUI。 采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。 不过目前对代理支持的话,不太好,只能支持单代理,本身不支持多代理,有两种解决方法: 修改源码,在发起请求的时候,从代理中心获取代理地址进行配置访问; 通过 类似squid方法进行获取,详细点这里 GitHub地址:https://github.com/binux/pyspider 中文网地址:http://www.pyspider.cn PySpider特性 用Python编写脚本,支持Python 2. {6,7},3。{3,4,5,6}等 功能强大的WebUI,包括脚本编辑器,任务监视器,项目管理器和结果查看器 支持多种数据库存储(MySQL,MongoDB,Redis,SQLite,Elasticsearch,PostgreSQL,SQLAlchem...
- 下一篇
进程管理利器Supervisor--入门简介
目录 概述 Supervisor是什么 Supervisor意图 Supervisor特性 Supervisor组件 平台需求 概述 项目运行需要后台运行,一般都是使用 nohup,但是nohup不能对后台进程监控和失败重启等高级功能,有木有更好的工具可以帮我们做这些事呢,通过谷哥的绑住找到了一个满意答案就是Supervisor 转帖请注明出处:https://my.oschina.net/u/2342969/blog/2963930 Supervisor是什么 Supervisor是一个进程管理系统(其实是一个软件),它有一个可视化界面可以启动进程,查看进程状态,它允许用户监视和控制类unix操作系统上的许多进程。 它与launchd、daemontools和runit等程序共享一些相同的目标。与某些程序不同,它不打算作为init的替代程序“process id 1”运行。相反,它被用于控制与项目或客户相关的过程,并且在引导时像其他程序一样启动。 Supervisor意图 简便 rc.d脚本是流程初始化/自动启动/管理的一种很好的、最基本的形式,但是编写和维护它们可能会很麻烦。此外...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题