每周读书与学习-amp;gt;JMeter性能测试脚本编写实战(三)如何利用JMeter为MySQL数据库构造测试数据

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。

在前面的学习中,介绍了很多Jmeter的理论知识,包括Jmeter中很多不同元件的详细介绍以及每个元件的作用,本次主要从实践的角度来介绍怎么用这些元件来完成常见性能测试脚本的编写,将会介绍一些常见的性能测试脚本编写案例。

在上一次分享中,分享了前一个请求返回的结果作为后一个请求的入参的案例,本次将分享如何利用JMeter为MySQL数据库构造测试数据

1、如何利用JMeter为MySQL数据库构造测试数据

在性能压测中,经常需要构造大量的数据以在测试环境中模拟出类似生产环境中同等的数据量,以便让性能压测更加贴近真实的生产环境,JMeter不但是一个很好的性能测试工具,而且还可以用其来构造性能测试数据,如下示例将演示如何使用JMeter给指定的表中插入10万条数据。

首先在MySQL数据库中创建两张表,其建表语句分别如下所示:

create table jmeter_test_one

(

id bigint(20) NOT NULL AUTO_INCREMENT,

user_id varchar(11),

user_name varchar(25),

PRIMARY KEY (id)

);

create table jmeter_test_two

(

id bigint(20) NOT NULL AUTO_INCREMENT,

user_id varchar(11),

address varchar(25),

PRIMARY KEY (id)

);

在MySQL数据据中创建成功后,如下图所示。

MySQL数据库服务器的配置信息如下表所示。

服务器类型

配置说明

数据库服务器

内存:2GB

CPU:2核

部署软件:MySQL

操作系统:CentOS 7

由于JMeter 直接连接MySQL数据库,需要jdbc driver,所以需要先从MySQL的官网https://www.mysql.com/products/connector/ 下载jdbc driver,如下图所示。

启动JMeter,在JMeter的测试计划界面中,添加下载好的MySQL jdbc driver,如下图所示,通过点击浏览按钮,选择下载好的MySQL jdbc driver的路径,就可以将driver 添加进来了。

在测试计划中,添加一个Thread Group(线程组),然后在线程组下添加一个JMeter 的计数器元件,这里我们使用计数器来作为插入时的变量引用,引用名称设置为id,如下图所示,在计数器中做如下设置:

  • Starting value:表示起始值,这里设置构造数据的起始值为1。
  • 递增:表示构造数据时,每次递增多少,这里设置为1。
  • Maximum:表示数据的最大值设置为多大,通常可以设置为一个无穷大的数据即可,这里设置为100000000。
  • 数字格式:表示数字的格式,比如0001或者00001类似这样,也可以为空,这里不做任何的设置。
  • 引用名称:设置定义的计数器变量的名称,可以在jmeter的其他元件中作为参数引入使用。

在线程组下添加JDBC Connection Configuration 元件,并且在JDBC Connection Configuration的配置界面,配置MySQL JDBC的连接信息,如下图所示,相关的配置信息如下:

  • Variable name for created pool:设置创建的连接池的变量名称,这里设置为testpool。
  • Max number of connection:设置最大连接数,这里设置为10。
  • Max wait:设置最大等待时长(单位为毫秒),这里设置为10000。
  • Time between Eviction Runs:设置线程可空闲时长(单位为毫秒),这里设置为60000。
  • Auto commit:设置数据库事务是否自动提交,这里设置为True,表示开启数据库事务自动提交模式。
  • Transaction isolation:设置数据库事务隔离级别,这里选择DEFAULT。
  • Database url:以JDBC协议的格式输入目标数据库的URL地址。
  • Jdbc driver class:设置jdbc的驱动名称,在这里选择com.mysql.jdbc.Driver。
  • Username:设置连接目标数据库的用户名。
  • Password:设置连接目标数据库的密码。
  • Connection Properties:用于设置建立Mysql JDBC连接时需要自定义指定的连接属性。

在Thread Group 下添加JDBC Request取样器元件,如下图所示。

在JDBC Request 取样器中,配置我们的数据库插入操作,如下图所示,在中间的输入框中输入insert into jmeter_test_one(user_id,user_name) values('user_${id}','user_name_${id}');插入语句,其中${id}就是引用的计数器中定义的id变量。在variable name of pool declared in JdBC Connection Configuration中输入我们在JDBC Connection Configuration中定义的连接池名称testpool,并且将Query Type选择为Update Statement。如果是一次执行多条SQL语句,需要将Query Type选择为Callable Statement,update和delete 语句的Query Type和insert 语句的Query Type是一样的。

我们再在线程组下添加一个查看结果树组件,用于查看jmeter 请求是否成功,如下图所示,查看结果树通常用于Jmeter性能测试脚本的调试。

以上jmeter元件都添加好了后,就可以让jmeter 运行起来了,如下图所示所示,当运行时,可以从Jmeter结果树中看到JDBC Request 取样器的运行日志。

执行完成后,可以看到jmeter_test_one这张表已经插入超过10万条左右的数据,如下图所示。

使用同样类似的方式,再向jmeter_test_two表中也插入10万条数据,为接下来后面的MySQL数据库查询的性能压测做数据准备。

针对使用Jmeter构造数据总结如下:

l 合理使用Jmeter中的计数器元件,可以做到构造数据时的唯一性,避免重复数据。

l 合理使用好Jmeter中函数,可以构造出很多自己想要的数据格式,比如日期时间格式、IP地址、UUID等,如下图所示。

2、本次学习总结

读者们需要在做性能测试时,如果需要构造测试数据,知道如何借助JMeter来为数据库构造测试数据。

出处:本次学习的内容参考自清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书

作者的原创文章,转载须注明出处。原创文章归作者所有,欢迎转载,但是保留版权。对于转载了博主的原创文章,不标注出处的,作者将依法追究版权,请尊重作者的成果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1135530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建筑设计展示升级:效果图一键生成漫游视频

建筑设计展示升级:效果图一键生成漫游视频 引言:从静态呈现到动态叙事的跨越 在建筑设计领域,效果图长期作为核心表达工具,承载着设计师对空间、光影与材质的构想。然而,静态图像始终存在局限——它无法展现空间流动感…

3D GS编辑

GitHub - sparkjsdev/spark: :sparkles: An advanced 3D Gaussian Splatting renderer for THREE.js

基于javaweb的大学生兼职管理系统vue

目录大学生兼职管理系统(JavaWebVue)摘要项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作大学生兼职管理系统(JavaWebVue)摘…

Sambert-HifiGan模型轻量化:移动端部署实践

Sambert-HifiGan模型轻量化:移动端部署实践 引言:中文多情感语音合成的落地挑战 随着智能语音助手、有声阅读、虚拟主播等应用的普及,高质量的中文多情感语音合成(Text-to-Speech, TTS) 成为AI交互系统的核心能力之一…

AppSmith实时协作:打破传统开发壁垒的革命性解决方案 [特殊字符]

AppSmith实时协作:打破传统开发壁垒的革命性解决方案 🚀 【免费下载链接】appsmith appsmithorg/appsmith: Appsmith 是一个开源的无代码开发平台,允许用户通过拖拽式界面构建企业级Web应用程序,无需编写任何后端代码,…

AIGC内容创作新方向:Image-to-Video技术演进展望

AIGC内容创作新方向:Image-to-Video技术演进展望 技术背景与行业趋势 近年来,AIGC(Artificial Intelligence Generated Content)在图像生成领域取得了突破性进展,以Stable Diffusion、DALLE为代表的文生图模型已广泛应…

基于ssm网上拍卖系统vue

目录 SSM框架与Vue结合的网上拍卖系统摘要 项目技术支持论文大纲核心代码部分展示可定制开发之亮点部门介绍结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 SSM框架与Vue结合的网上拍卖系统摘要 该系统采用SSM(SpringSprin…

不需要位姿输入的3DGS

GitHub - TencentARC/FreeSplatter: [ICCV 2025] FreeSplatter: Pose-free Gaussian Splatting for Sparse-view 3D Reconstruction

探索永磁同步电机与无刷直流电机的高性能控制秘籍

永磁同步电机高性能无感foc源码 无刷直流电机驱动方案 无刷直流电机无感foc控制 闭环启动 1%额定频率均匀运行 2%额定频率下带满载 100%负载启动Ok 磁链法位置估计 代码全部C语言源码送仿真模型 12K载频下实测1k电频率输出 速度环下堵转观测器不发散 可以提供方案验证配套硬件在…

CSDN博主力荐:适合新手入门的Image-to-Video部署包

CSDN博主力荐:适合新手入门的Image-to-Video部署包 📖 简介与技术定位 在生成式AI快速发展的今天,图像转视频(Image-to-Video, I2V) 技术正逐步从研究走向落地。相比静态图像生成,视频生成不仅需要理解空间…

Sambert-HifiGan语音合成服务的灾备与恢复方案

Sambert-HifiGan语音合成服务的灾备与恢复方案 引言:高可用语音合成服务的必要性 随着智能客服、有声阅读、虚拟主播等AI语音应用的普及,语音合成服务(TTS) 已成为关键基础设施之一。在生产环境中,任何服务中断都可能…

如何用Sambert-HifiGan为教育APP添加智能朗读?

如何用Sambert-HifiGan为教育APP添加智能朗读? 引言:让文字“开口说话”——中文多情感语音合成的教育价值 在当前在线教育、儿童阅读、语言学习类APP快速发展的背景下,高质量的中文语音朗读功能已成为提升用户体验的核心竞争力之一。传统的…

CH585M+MK8000、DW1000 (UWB)+W25Q16的低功耗室内定位设计

CH585MMK8000、DW1000 (UWB)W25Q16的低功耗室内定位设计 在CH585MMK8000(UWB)W25Q16的低功耗代码体系中,补充DW1000 UWB芯片与MK8000的核心特性对比,以及两者互联互通的实现方法(同时保持低功耗设计逻辑)。下面会从「特性对比、互…

大场景3DGS

Horizon-GS: Unified 3D Gaussian Splatting for Large-Scale Aerial-to-Ground Scenes GitHub - InternRobotics/HorizonGS: [CVPR 2025] Horizon-GS: Unified 3D Gaussian Splatting for Large-Scale Aerial-to-Ground Scenes

基于I2VGen-XL的图像转视频系统搭建全攻略

基于I2VGen-XL的图像转视频系统搭建全攻略 📌 引言:从静态到动态——图像转视频的技术演进 在生成式AI快速发展的今天,图像生成技术已趋于成熟,而更具表现力的视频生成正成为下一个前沿阵地。传统视频制作依赖专业设备与人工剪辑…

Windows 11 LTSC微软商店缺失?零基础用户也能轻松安装

Windows 11 LTSC微软商店缺失?零基础用户也能轻松安装 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 还在为Windows 11 LTSC版本找不到微…

如何用Sambert-HifiGan制作语音版健身指导?

如何用Sambert-HifiGan制作语音版健身指导? 引言:让AI教练“开口说话”——中文多情感语音合成的落地场景 在智能健身应用日益普及的今天,用户不再满足于静态的文字或预录视频指导。个性化、实时化、情感化的语音交互正成为提升用户体验的关键…

CMS平台如何配置UEditor支持Word公式粘贴转MathML?

关于Word/公众号内容粘贴及Office文档导入功能的解决方案评估报告 一、需求背景与分析 作为北京某国企信息化项目负责人,近期我们接到党政机关客户的新需求,要求在现有网站内容管理系统中增加以下功能: Word内容直接粘贴(含图片…

边缘计算+图像转视频:未来智能监控落地新方向

边缘计算图像转视频:未来智能监控落地新方向 引言:从静态监控到动态感知的技术跃迁 传统智能监控系统长期依赖于实时视频流采集与分析,这种模式在带宽、存储和算力方面带来了巨大压力。尤其在边缘设备资源受限的场景下,持续高清视…

按需付费GPU+开源模型:AI部署成本优化策略

按需付费GPU开源模型:AI部署成本优化策略 引言:从“烧钱”到“精算”的AI部署转型 在生成式AI快速落地的今天,图像转视频(Image-to-Video) 技术正成为内容创作、广告设计、影视预演等领域的关键工具。然而,…