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 语句

具体步骤如下:

配置 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:

说明一点:这里用到的 Query Type 为:Select statement,这是一个查询语句类型,如果在 Query 中查询的是一条语句,就可以采用这种查询类型,但是当查询语句多于一条的时候,就不能在使用此查询类型,需要设置 Query Type 为:Callable 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,此时运行查看结果树:


另外:当 JDBC 脚本执行的时候,总是会优先去执行 Select statement 的第一行。

(5)在线程组下,添加查看结果树,运行结果,查看是否成功:


可以看到我们成功查询出满足 select name,current_value from cf_tb_sequence where name = '0103' or current_value = '44'的数据。

技术的提升是需要下苦工,需要坚持不懈的努力。就比如下面的分享的这些技术点,是否都学会并掌握了呢?如需要以下图谱以及跟多提升架构技术的资源可加入我的粉丝Qqun:855801563。我花了将近一个月时间搜集整理了一套架构技术提升知识点讲解以及一些面试题解析和答案免费分享给大家。助力各位程序员朋友突破自我提升技能,实现自己的目标。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 12,399评论 5 116
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,214评论 0 13
  • 空潦台楼恋旧情, 满月微风心上走。 尔恐牛织已相会, 今夕她望梦本醉。
    一只飞虫阅读 3,222评论 2 5
  • 今天第一大突破:我鼓起了勇气跟领导坦白了我的想法,我希望在工作上能有更多的承担。也基本被采纳和接受了。 今天第二大...
    霸气外露的鱼儿阅读 1,495评论 0 1
  • 文/凌晨两点半的星星 第二章 萌芽 看着最后一个教授摇摇晃晃地被人搀扶到车上,看着汽车的排烟孔里喷出第一股强大的尾...
    松子读书阅读 5,718评论 0 0

友情链接更多精彩内容