JMeter 如何与 MySQL 进行整合测试

性能自动化测试之Jmeter高级编程 说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 接着上一篇博客继续往下写 :https://blog.youkuaiyun.com/qq_41782425/article/details/104239512 文章目录一、JMeter 内置函数二、Jmeter 访问 MySQL 数据库1.加载数据库驱动包2.配置数据库连接参数3.添加 JDBC Request4.Prepared(预编译查... 阅读详情

做性能测试定位瓶颈的时候,定位到是因为某些 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'的数据。

结语:

跟大家推荐一个学习资料分享群:175317069,里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!人生是一个逆水行舟的过程,不进则退,咱们一起加油吧!

rocketmq 4.9.2 DefaultLitePullConsumer 长轮循配置使用与压力测试 测试环境: rocketmq 整合 springboot ,程序是在本地测试 ,mysql 也是本地 rocketmq 环境: linux 8核16g 单机 内存,默认启动配置 mysql :本机 jmeter 计划为3000线程线*300=90万条数据,单表保存,字段100个左右,基本为字符串.(本机最终测试可稳定在每秒7000线程数) 有图有真相 图一 线程组 图二 http 请示 ${cnt} 配置的是计数器,区分数据,不会全部一毛一样 图三 计数器 图四 汇总报告 jmiter 实际运行时间 阅读详情

相关推荐

mysql5.0 测试_spring boot 整合mybatis,druid 测量 Mysql 5.0+ 数据量测试

1 首先在 本地搭建一个虚拟机,安装mysql2 对mysql 单表数据量测试 这里使用spring boot 配合durid 和 mybatis 来搭建 ,下面会详细介绍这里先 贴上 pom,因为前段时间 在对比 postgre,mongodb 等数据库,pom里面还有一些其他的引用,将就看吧。xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc...

weixin_39733821的博客 562

【性能测试】jmeter数据库性能测试

本文是记录使用jmeter对数据库进行性能测试,以及在测试过程中常使用的方法。

test_dog的博客 7101

Spring MVC+Hibernate+MySQL生产级整合避坑指南

Spring MVC、Hibernate与MySQL的整合并非简单的框架拼接,而是涉及HTTP请求处理、事务管理、ORM映射、连接池配置及数据库底层机制的全链路协同。其核心原理在于各层边界清晰、生命周期可控:Spring MVC负责参数绑定与校验,Hibernate依托一级/二级缓存与脏检查实现对象状态同步,MySQL则通过InnoDB事务隔离、行锁与日志刷盘保障数据一致性。技术价值体现在可维护性提升、并发安全增强与故障可追溯性强化;典型应用场景包括高并发选课系统、金融级后台服务及多环境部署的教务平台。本文

weixin_34082789的博客 314

jmeter 测试数据库的详细方法

线程组介绍、数据库连接配置说明、详细业务构造说明、测试案例

m0_61066945的博客 5967

C8051F全系24款例程源码详解:从初始化到移植实战

在嵌入式开发中,参考程序源码是理解芯片外设配置与工程实践的快车道。对于基于51内核的高集成度单片机而言,寄存器初始化顺序、时钟系统选择与端口映射逻辑往往决定了项目能否稳定运行。C8051F系列作为8位机中的高性能代表,其24款型号的参考例程覆盖了UART、ADC、PCA、USB、CAN等常见外设,通过逐行分析这些代码,开发者可以快速掌握交叉开关配置、中断优先级设计等关键技能。无论是老项目维护、替代选型,还是基于增强型51的二次开发,这套例程都能充当“寄存器翻译词典”,帮助工程师缩短开发周期,规避硬件调试陷阱

weixin_33755557的博客 401

SAP PP未清生产订单关闭物料退料、新工单发料批量处理

( werks = '1001' lgort = 'A004' lgobe = '组装-成品组装' )( werks = '1002' lgort = 'C006' lgobe = '组装-二车间' )( werks = '1002' lgort = 'C007' lgobe = '组装-二车间' )( werks = '1001' lgort = 'A007' lgobe = '组装-MS' )( werks = '1001' lgort = 'A008' lgobe = '组装-GW' )

dingqing86的专栏 1193

使用Jmeter连接MySQL测试实战

连接MQSQL数据库1、jmeter要连接mysql数据库,首先得下载mysql jdbc驱动包,尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题。

HSS919的博客 411

一文了解ECU软件刷写的2种方法:Bootloader刷写和调试器刷写

分为刷写前、刷写中和刷写后三个阶段,如下示意:下面我们来详细了解一下Bootloader收到外部请求后开始刷写的三个阶段1)刷写前进行刷写的准备,一是确保刷写阶段总线通信的稳定性,二是避免刷写阶段出现非预期的故障,三是读取车辆数据供刷写前的一些检查等,如下所示:首先进行会话控制,通过功能寻址方式进入扩展会话模式,为后面的信息访问及其他指令做准备;然后检查刷写的前提条件,通过物理寻址方式发送历程控制请求。比如车确实处于静止状态,供电电压稳定等条件下才允许刷写;

menghuyouyou的博客 5788

Jmeter压力测试Mysql数据库

至于这里引用Variable names时,为什么在变量名后面加了一个“_1”,是因为查询到的结果是一个列表,所以不管它查询的是一条还是多条数据,都要通过下标去取它的值,写法就是:变量名_下标。sql语句返回2行2列,id和named的Variable names设置为A、C,那么要取name为Mike的值,就设置为C_1,取name等于Jame的值,就设置为C_2。要连接mysql数据库,首先得下载mysql jdbc驱动包,尽量保证其版本和你的数据库版本一致,至少不低于数据库版本,否则可能有问题。

justlpf的专栏 1547

哨兵一号数据下载

哨兵1号数据的下载过程

weixin_59617499的博客 5139

亲友圈棋牌的逆向工程_棋牌透视分析研究(一)

透视也能实现,有些台子就自带控制,这种东西权限只是存在于平台运营者手中,即便逆向破解也很难发现,但也有那么一些棋牌 比如斗牛或者跑得快,会先发给你的内存中存放当前的牌的信息,这样你就可以知道对面的牌是什么,但肯定也是加密了。明明是zip却无法解压,这很明显是属于被加密了, 那么我们就要开始找他的加密内容,一般加密的秘钥都会存储在so里面。写这一篇文章了,其实也想了很久,最终还是决定写了, 有些朋友找我做过菠菜的逆向,bjl,甚至是足球的!但很遗憾的告诉大家,这里是找不到的。

m0_63368535的博客 5826

jmeter工具使用(压测数据库)

前提准备:需要准备一台可以部署jmeter的win机器,指定压测文件(数据库、sql等)3、点击JDBC Connection Configuration设置数据库连接信息。使用生成的jmeter测试结果日志文件.jtl,生成HTML性能测试报。6、保存jmeter文件生成.jmx的文件命令行去执行压测。模版--选择JDBC Load Test--create。压测场景:单sql压测试、批量执行sql测试。2、创建线程组(可以设置jdbc连接等)5、配置JDBC Request。7、聚合报告参数详解。

世界和平 2784

实战:RK3568 Android14 调试 ES8388 音频驱动 (MIC 篇)

这个板子的MIC设计使用了硬件自动切换方案,极大简化了软件层面的逻辑。我们不需要根据耳机插拔事件去编写复杂的路由切换代码,只需要守住 LIN1/RIN1 这一个入口,配置好增益,剩下的交给那颗 SGM3157 芯片即可。祝您的录音功能调试顺利!

qq_33427070的博客 1681

【Redis】(一)SpringBoot 整合Redis缓存并使用Postman+JMeter进行性能测试

文章目录1、SpringbootPostman测试分页的接口JMeter压力测试1、设置线程组2、设置测试 HTTP请求3、设置测试随机数4、测试结果 1、Springboot 在XshellDocker上使用命令,进入Redis [root@zj ~]# docker start redis redis [root@zj ~]# docker exec -it redis /bin/bash r...

云祁QI 2338

VTK 显示大量点云数据及交互(点云拾取、着色、测量等)功能

VTK (Visualization Toolkit) 是一个强大的开源可视化库,非常适合处理点云数据。下面将介绍如何使用 VTK 显示大量点云数据,并实现点云拾取、着色、测量等功能。

深之JohnChen的专栏 1997

基于泰勒展开改进的物理信息神经网络

基于泰勒展开改进的物理信息神经网络

天天酷科研的博客 505

【软件测试】系统学习清单(含知识点+掌握程度拆解)

本文提供了一份系统化的软件测试工程师学习清单,分为三个阶段:基础(测试理论、接口测试、MySQL)、进阶(Linux、Python、Selenium)和实战(接口自动化、项目实践)。清单详细拆解了每个阶段的核心知识点,并明确了每个知识点的掌握标准。特别强调实操优先原则,通过实际项目巩固技能。

2301_80722978的博客 612

OP-TEE虚拟化支持详解

OP-TEE虚拟化支持解析 OP-TEE提供实验性虚拟化方案,支持多虚拟机共享安全执行环境。核心特性包括: 配置选项:CFG_VIRTUALIZATION启用虚拟化,CFG_VIRT_GUEST_COUNT限制虚拟机数量并分配均等内存资源; Hypervisor协作:需实现虚拟机生命周期通知、SMC参数转换、内存固定等关键协议; 当前限制:仅支持Armv8架构,硬件资源共享有限,采用静态内存配额机制; 架构实现:通过MMU分区切换和扩展内存分配器实现多租户隔离,Nexus核心层管理虚拟机上下文。该方案适用于

Linux内核架构师 109

技术文章系列整理(持续更新)

本博客有很多关于性能及测试开发的文章。我试着对你可能感兴趣的一些重要文章进行分类。

7DGroup,让技术更有价值! 1万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

总结_目录

个人知识技能总结

m0_46582389的博客 462

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java_ssm社区管理与服务的设计与实现jsp毕业论文

简要概述研究背景、系统目标、技术选型(SSM框架)、实现功能及论文创新点。SSM框架:Spring、Spring MVC、MyBatis的核心特性及整合优势。前端技术:JSP、jQuery、Bootstrap的交互设计与响应式布局。数据库技术:MySQL的选型理由及表结构设计原则。成果总结:系统实现的功能与特色。不足与改进:可扩展性优化方向(如引入微服务架构)。

qq840612233的博客 365

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

邢台市桥东区社区停车信息管理系统

本项目采用Java语言开发,基于SpringBoot2.x框架构建,兼容MySQL5.7/8.0数据库。开发环境需配置JDK1.8、Maven及IDE工具(推荐IntelliJIDEA),支持传统war包、内嵌容器和Docker部署。运行前需创建数据库并执行初始化脚本,数据库配置可通过application.yml修改。项目已通过JUnit、Postman和JMeter等测试工具验证。

2501_93059031的博客 288

基于springboot框架基于推荐算法的在线课程推荐系统设计与实现-idea maven vue

数据库使用MySQL存储课程和用户数据,Redis缓存热门推荐结果。推荐算法模块集成协同过滤(CF)和基于内容的推荐(CB)。协同过滤实现用户-课程评分矩阵分解,基于内容推荐利用TF-IDF计算课程相似度。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。课程表记录课程ID、名称、类别、难度等元数据。关系表维护课程间相似度。协同过滤使用ALS算法分解评分矩阵,预测用户对未学习课程的评分。查看详细的视频演示,或者了解其他版本的信息。

abo2022的博客 322

基于javassh图书销售管理系统论文

工作总结:归纳系统实现的功能与创新点,对比初期目标的完成情况。不足与改进:分析系统现存问题(如界面兼容性),提出优化方向(如引入微服务架构)。

wx_bishe288的博客 30
上一篇: 【经验分享】Python实现UI自动化难点问题
下一篇: 如何使用Jmeter实现WebSocket协议的接口测试
TestingGDR
博客等级 码龄8年 496粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值