Jmeter 远程压测 JDBC for MySQL 数据库

用Jmeter执行的一次集群压测 用Jmeter执行的一次集群压测 项目介绍:使用Jmeter对项目中的一个接口进行压力测试,首先需要模拟人员登录,而由于我们的项目是基于企业微信开发的,所以人员登录时需要进行oauth2认证,所以我们需要对这个人进行模拟登录,然后将登录成功的cookie作为人员信息使用。 目前我们模拟微信端人员登录是需要corpid和account2个字段,我是分了两种方式进行模拟登录,一种是通过一个Pyth... 阅读详情

一、Jmeter

1、Jmeter介绍

     JMeter 是 Apache开发的压力测试开源软件,是100%纯Java的应用程序,同时又是一款接口测试工具。设计用于模拟负载测试功能行为和衡量性能,最初是为测试Web应用程序而设计的,但后来扩展到了其他测试功能。
     Apache JMeter 可用于测试静态和动态资源、Web动态应用程序的性能,能够对于应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序返回了期望的结果。
​     它可以用来模拟服务器、服务器组、网络或对象上的重负载,以在不同压力类别下测试其强度或分析不同负载类型下的总体性能。
     博主本文着重从 Jmeter 测试后端数据库 MySQL 的切入点入手,展示 Jmeter 性能测试的部分基本操作。

image-20200902231743734

2、JMeter特性
  • 能够加载和性能测试多种不同的应用程序/服务器/协议类型:
    • Web-HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET等)
    • SOAP/REST Web服务
    • 文件传输协议
    • 通过JDBC的数据库
    • 基于JMS的消息中间件(MOM)
    • 邮件-SMTP、POP3和IMAP
    • 本机命令或shell脚本
    • 传输控制协议
    • Java对象
  • 允许快速测试计划录制(从浏览器或本机应用程序)、生成和调试
  • CLI模式(Non GUI模式/无头模式)从任何Java兼容操作系统(Linux、Windows、Mac OSX等)负载测试
  • 一个完整的准备好呈现动态HTML报表
  • 通过从最流行的响应格式中提取数据的能力,HTML,JSON,XML或任何文本格式
  • 完全的便携性和100%纯Java
  • 缓存和离线分析/回放测试结果
3、Jmeter安装
  • JDK

    image-20200830215810882

    • 新建一个系统变量 JAVA_HOME,变量值为 JDK 所在路径,如 D:\Program Files (x86)\Java\jdk1.8.0_191

    image-20200830220322797

    • 需要编辑系统变量path,增加 %JAVA_HOME%\bin

    image-20200830220740926

  • Jmeter 安装与启动

    • 前往 Jmeter 官网下载压缩包,无需安装直接解压到某个路径,如 D:\Program Files (x86)\Apache\apache-jmeter-5.0,目录介绍如下图

      image-20200830223831792

    • 在 Jmeter 路径 D:\Program Files (x86)\Apache\apache-jmeter-5.0\bin 下输入 jmeter.bat,即可启动 Jmeter (GUI) 图形化界面

      image-20200830222457229

    • Jmeter 也讲了,如果要进行测试,应该使用 Non GUI 模式

      指令如下

      jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
      
4、Jmeter 测试 JDBC 的场景

Jmeter 是 100% Java 应用程序,要用 Jmeter 发送大量的 SQL 数据查询给 MySQL 数据库,以此来测试其性能;就必须要用到 Java 连接 MySQL 的驱动。

二、服务器端准备数据库数据

1、MySQL命令行

进入数据库服务器端(VMWare虚拟机)

cd 到 XAMPP 的 mysql 的 bin 路径下

image-20200830023003050

或通过 XAMPP Control Panel 的 Shell

image-20200830023348068

2、数据库操作准备测试数据

首先登录 mysql 的 root 账户

mysql --user root --password  -- 或 mysql -u root -p

笔者密码设置为空故直接回车,之后进入的却是 MariaDB 命令行,但是表慌 😉
这种情况的原因是 MySQL 被 Oracle 收购后,MySQL 的作者 Michael Widenius 为了解决社区版被闭源的风险,开发了 MySQL 分支,随后用他小女儿 Maria 的名字起名为 MariaDB,而 MySQL 本身就是用他另一个女儿 My 命名的,这位大爷就是厉害啊,orz,哈哈。MariaDB 与 MySQL的有高度的兼容性,毕竟是姐姐妹妹嘛。

image-20200830024059818

言归正传,然后命令行 SQL 操作数据库,准备待测试数据。当然可以通过创建带有 while 循环的存储过程 PROCEDURE,或其他方法来批量插入大量的随机测试数据;但是本文重点不在此,故只是插入少量数据;另外如果要大批量插入,建议建表时更换数据库引擎为 InnoDB

-- 查看现有数据库
SHOW DATABASES;
-- 创建一个database,db_user
CREATE DATABASE db_user CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 切换至db_user
USE db_user;
-- 创建一张table,tb_user
CREATE TABLE tb_user(username varchar(20),password varchar(30));
-- 往tb_user中插入数据
INSERT INTO tb_user (username,password) VALUES ('Tom',md5('123456')),('Jerry',md5('67890'));
-- 查询验证操作
SELECT * FROM tb_user;

SQL操作及结果如下:

image-20200830034248116

查询结果

image-20200830034508382

三、Jmeter 测试 JDBC 步骤

1、测试计划配置

测试计划中 “添加 jar 包到 Classpath“,选择下好的 mysql-connector-java-5.1.28.jar

image-20200830005609387
2、线程组配置

根据测试需求,配置线程组的线程数、Ramp-up时间、循环次数等

image-20200830010326088
3、线程组添加配置元件: JDBC Connection Configuration
(1) Jmeter 操作

添加配置元件 JDBC Connection Configuration

image-20200830013402296

准备好配置的值:

  • Variable Name for created pool

    myjdbc
    
  • Database URL

    jdbc:mysql://mysql数据库服务器IP地址:mysql端口号/要连接的database名称
    

    如:

    jdbc:mysql://192.168.8.134:3306/db_user
    
  • JDBC Driver class

    com.mysql.jdbc.Driver
    
  • Username & Password

    root  123456
    

填入以上配置参数,其他参数选择默认

image-20200830013940718

(2) MySQL 操作

JDBC Connection Configuration 中 Database URL 使用了ip地址来访问某个MySQL数据库服务器;

而要通过ip地址实现访问MySQL,就必须要先在数据库服务器上开通允许远程设备连接的权限。

-- 切换到mysql数据库
USE mysql;
-- 授予全部权限,'root'@'%'为所有主机的root账号,‘123456’为远程连接到mysql的密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
-- 刷新权限后生效
FLUSH PRIVILEGES;
-- 查询设置成功
SELECT host,user,password FROM user;

在数据库服务器端,SQL操作结果如下

image-20200830035732287

4、线程组添加取样器:JDBC Request

添加取样器 JDBC Request

image-20200830014423301

配置 JDBC 请求:

包括填入之前 JDBC Connection Configuration 里设置过的变量名,选定测试SQL语句的类型,书写性能测试要围绕进行的SQL语句。

image-20200830015152077

5、添加监听器

添加察看结果树、汇总报告、图形结果、响应时间图等等监听器;在监听器中,可以看到这个查询或其他SQL语句所耗费的时间、效率、吞吐量、QPS等等一系列性能测试指标。

image-20200830015841080

结果如下

察看结果树可看到响应的具体数据

image-20200830040614318

用其他监听器查看性能指标
image-20200830041821206
设置集合点、检查点、添加断言、断言结果等等
image-20200830041706597

四、本文性能测试总结

1、首先MySQL数据库服务器端准备好了待测数据。
2、Jmeter中创建测试计划,并且添加 mysql-connector-java-5.1.28.jar的jar包。
3、创建线程组,设置线程数、Ramp-up、循环次数等
4、线程组添加配置元件 JDBC Connection Configuration,设置变量名,要连接的数据库URL( jdbc:mysql://192.168.8.129:3306/db_1 ),驱动包名 com.mysql.jdbc.Driver,远程连接的账号密码。
5、在数据库服务器端授权远程设备可以通过ip连接MySQL数据库
6、线程组中添加取样器 JDBC Request,设置JDBC连接配置里的变量名,选择要测的SQL查询语句类型,以及SQL语句。
7、添加察看结果树、汇总报告、图形结果等之类的监听器
8、Jmeter运行并查看性能测试结果

五、博主原创手动码字,喜欢就点赞收藏哦

博主唯一首发优快云,写这篇博客一来为了提醒自己的知识记忆,二来记录过程,三来践行交流分享精神;-)

jmeter对数据库压测以及服务器监控 一:数据库压测 1:为什么要对数据库进行压测? 不断的给数据库施加压力,验证数据库处理的性能 2:如何进行数据库压测? 2.1:一般接口测试步骤: 测试计划–线程组–http请求–监听器() 2.2:数据库测试步骤 测试计划–线程组–jdbc request–jdbc–JDBC Connection Configuration–监听器() 注释:jdbc:mysql://ip:端口号/库名?serverTimezone=UTC&allowMultiQueries=true 数据库语法 1:S 阅读详情

相关推荐

jmeter接口测试

jmeter进行http接口测试的主要步骤(1.添加线程组 2.添加http请求 3.在http请求中写入接口的URL,路径,请求方式,参数 4.添加查看结果树 5.调用接口,查看返回值) 针对接口添加header在如下途径添加: jmeter做http接口测试添加cookie: 3.jmeter-webservice脚本 进行webservice测试的一般步骤 1、在soapui中新建已经soap项目,导入wsdl地址,获取到请求报文、SOAPAction和请求url(在soapui的ra

十七光年的博客 9168

15.Jmeter_数据库压测

需要操作数据库的常⻅场景 准备、制造测试数据 获取、查询测试数据 清理测试环境、删除过程数据 数据库压测 操作数据库场景 准备好可⽤的MySQL Server(可以⽤docker 搭建) ➢ 建库建表 ➢ 验证数据库可连通 建库建表SQL语句: iJmeter/sql/order.sql ✓ 将mysql connector 依赖包复制粘贴到 <jmeter_path>/lib ⽬录下,依赖包位 置 iJmeter/jars/mysql-connector-java-8.0.15.j

安小静-- 311

一体化性能压测平台实战:JMeter+Prometheus+Grafana构建全链路监控

在软件开发和运维领域,性能测试与监控是保障系统稳定性的核心环节。其基本原理在于通过模拟真实用户负载,持续观测系统在压力下的各项指标表现,从而评估其性能瓶颈与承载能力。这一过程的技术价值在于,它将原本依赖经验判断的性能评估,转变为基于数据的、可量化、可复现的工程实践,是构建高可用、高弹性系统的关键支撑。典型的应用场景包括新服务上线前的容量评估、日常迭代的性能回归测试以及线上故障的根因定位。本文聚焦于如何整合JMeter、Prometheus、Grafana等主流开源工具,构建一个集压测执行、数据采集、实时监控

weixin_33947521的博客 359

(十)Jmeter操作数据库/INSERT数据/读取CSV数据/bean shell使用

(十)Jmeter操作数据库/INSERT数据/读取CSV数据/bean shell使用

futao__的博客 1680

JMeter全流程压测实战:从脚本设计到瓶颈定位的完整避坑指南

性能测试是保障软件系统稳定性和扩展性的关键环节,其核心在于模拟真实用户负载,评估系统在高并发下的表现。其原理是通过工具生成并发请求,监控系统各项资源指标,从而发现性能瓶颈。这项技术的价值在于,它能在上线前提前暴露系统容量、稳定性和代码层面的问题,为容量规划和架构优化提供数据支撑,是驱动系统性能持续改进的工程实践。典型的应用场景包括新系统上线前的容量验证、大促前的全链路压测以及日常的性能基线回归。在具体实践中,JMeter作为广泛使用的开源压测工具,其脚本设计、场景调试、瓶颈定位和报告分析构成了一个完整的工程

weixin_33739523的博客 510

可视化工具--Plotly

随着信息技术的发展和硬件设备成本的降低,当今的互联网存在海量的数据,要想快速从这些数据中获取更多有效的信息,数据可视化是重要的一环。对于Python语言来说,比较传统的数据可视化模块是Matplotlib,但它存在不够美观、静态性、不易分享等缺点,限制了Python在数据可视化方面的发展。   为了解决这个问题,新型的动态可视化开源模块Plotly应运而生。由于Plotly具有动态、美观、易用、种类丰富等特性,所以一经问世就受到开发人员的喜爱。

YFater的博客 1万+

通过Jmeter压测存储过程

1、网上找到:mysql-connector-java-8.0.29.jar(版本不限定),放到Jmeter目录\lib\ext下。 2、网上找或将本地:ojdbc14.jar,放到Jmeter目录\lib下。

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 314

STM32F103C8T6与OV7670摄像头在TFT屏上的实时数字识别系统实现

本文详细介绍了基于STM32F103C8T6单片机和OV7670摄像头实现实时数字识别系统的全过程。系统通过图像采集、预处理、二值化和模板匹配算法,在TFT屏上实时显示识别结果,并针对资源受限的单片机环境提供了内存与性能优化策略,适用于智能家居、工业仪表读数等低成本嵌入式视觉应用场景。

open4的博客 278

JMeter之JDBC连接/操作数据库

JMeter JDBC查询

u011072936的专栏 4608

AIR780E二次开发点灯(LuatOS)

Air780E的LuatOS点灯教程,二次开发教程,可用于所有ec618平台,无需SDK

rootuseres的博客 1万+

vue3的面试题

vue3的面试题

jiang7701037的博客 6263

秒杀系统服务器部署及jmeter压测工具使用

(1)使用rpm后缀的文件,进行安装rpm -ivh 文件名文件自动安装在/usr/java文件夹下(2)安装完成之后进入根目录cd ~增加以下命令PATH=PATH之后使用更新环境变量,使得系统使用的java锁定在这个版本。

weixin_51405802的博客 989

ENU坐标系实战:5分钟搞定无人机导航中的站心坐标转换

本文针对无人机导航中GPS坐标与视觉感知不匹配的定位漂移问题,提供了基于ENU坐标系的实战解决方案。通过Python代码演示了如何快速、精准地实现地心地固坐标与站心坐标之间的转换,并详细解释了转换原理、精度对比及工程优化技巧,帮助开发者从根本上解决局部相对定位不准的难题。

mqtt6iot的博客 552

JMeter - Mysql数据库以及分布式压测

文章目录JMeter - Mysql数据库以及分布式压测1.Mysql数据库压测 JMeter - Mysql数据库以及分布式压测 1.Mysql数据库压测  之前我们简单介绍了HTTP请求的相关操作,这里我们再介绍一下我们接触比较多的DB数据库的相关测试操作。  我们直接在之前20人线程组测试计划下选择JDBC Requet。  这里我们先不介绍这个界面配置,先在添加好的JDBC Reque...

了无牵挂者忘生,心有所爱者忘死 757

把 MCP Server 直接装进 SAP ABAP:用 Unlimited Display Tools 打通 Agentic SDK 与 SAP ECC / S/4HANA 的最后一公里

摘要:AI与SAP集成的MCP解决方案 企业在AI集成中面临工具链复杂、数据对接繁琐的挑战。Model Context Protocol (MCP)通过标准化工具与数据暴露方式,将集成复杂度从N×M降至N+M。在SAP生态中,MCP Server for SAP直接部署于ABAP层,利用DDIC/CDS视图对接各类Agent SDK,避免中间件风险。 MCP核心包含三类对象: Tools:带元数据的可执行动作 Resources:结构化上下文数据 Prompts:可参数化提示模板 ABAP层实现MCP Se

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 680

飞牛fnNAS个人小账本导入微信账单

本文介绍了将微信支付账单导入ezBookkeeping个人记账系统的详细方法。首先通过微信申请导出账单文件,接收后需进行Excel预处理:删除前导行、添加账户和分类列、整理金额格式等。在ezBookkeeping中需预先设置"微信"分类和账户。导入时需注意列映射关系,包括交易时间、账户名称等关键字段的对应设置。文章还提到处理交易标签、格式转换等细节问题,并建议避免使用"修改余额"功能。该方法同样适用于支付宝账单导入,解决了直接导入可能出现的格式不兼容问题。

dgnankai的专栏 482

lr压测mysql数据库_jmeter压测mysql数据库

jmeter连接并压测MysqL数据库,之前一直想用jmeter一下测试MysqL数据库的性能,今天偶然看到一篇博客,于是乎开始自己动手实践。一、准备工作1、安装好MysqL数据库,可以安装在本地或者远程服务器(本教程为本地MysqL,其他的更改IP地址即可)2、下载JDBC驱动,JDBC驱动下载地址 :https://dev.MysqL.com/get/Downloads/Connector-...

weixin_30772189的博客 201

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jmeter压测

数据库压测 1. 为什么要进行数据库压测 不断给数据库施加压力,验证数据库处理的性能 2. 如何进行数据库压测 测试的过程中,我们经常要对数据库表数据进行查询、修改、添加等操作。在用 JMeter 做性能或者接口等 测试时,也可以让 JMeter 连接数据库然后对数据库数据进行相关操作。下面先来学习如何使用 JMeter 连接 MySql 数据库进行操作。 2.1 JDBC配置 首先创建一个测试计划和线程组,然后在线程组下添加配置元件 JDBC Connection Configuratio

weixin_47329041的博客 327

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Jmeter分布式压测入门笔记2

16、Jmeter压测实战之JDBC request压测Mysql讲解 简介:讲解jdbc压测mysql相关准备工作,jar包添加,配置讲解 1、Thread Group -> add -> sampler -> jdbc request 2、jar包添加 mysql-connector-java-5.1.30.jar 3、JDBC connection Configurati...

Wind18701437615的博客 648

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

jmeter mysql数据导出_Jmeter压测及Jmeter操作数据库学习笔记

一、Jmeter压测Linux下运行一般压测时间都是10-15分钟,这些并发用户一直在请求稳定性测试一周 2天1、例:如果想要压测100个并发数,1秒钟之内同时启动,设置如下图 PS:设置并发数,循环次数一定要勾选“永远”2、衡量一个系统性能的好坏标准tps:服务端每秒钟能处理的请求数响应时间:就是你从发出请求到服务端返回给你数据的时间3、添加聚合报告线程组右键->添加->监听器,...

weixin_33389310的博客 337

jmeter压测mysql数据库

jmeter连接并压测mysql数据库,之前一直想用jmeter一下测试mysql数据库的性能,今天偶然看到一篇博客,于是乎开始自己动手实践。 一、准备工作 1、安装好mysql数据库,可以安装在本地或者远程服务器(本教程为本地mysql,其他的更改IP地址即可) 2、下载JDBC驱动,JDBC驱动可以在mys ql的官网下载 3、配置驱动文件,下载后解压文件夹,把文件夹中的mysql-...

weixin_30378311的博客 259

jmeter 压测实战 jdbc request压测

前提需要安装或者远程链接一个数据库 1.在请求里面 选择JDBC request 2.在请求下面添加JDBC connection configuration 3.其中variable name 和JDBC request 的需要一致 4.添加数据库操作语句在JDBC request 5.可以在聚合报告上查看测试结果 handle resultSet 可以用debug s...

baixuanxie4498的博客 330

压测mysql数据库_jmeter压测mysql数据库

jmeter连接并压测mysql数据库,之前一直想用jmeter一下测试mysql数据库的性能,今天偶然看到一篇博客,于是乎开始自己动手实践。一、准备工作1、安装好mysql数据库,可以安装在本地或者远程服务器(本教程为本地mysql,其他的更改IP地址即可)2、下载JDBC驱动,JDBC驱动下载地址 :https://dev.mysql.com/get/Downloads/Connector-...

weixin_31022521的博客 301

Jmeter--Linux、Windows压测

Windows数据库压测 首先要下载插件,放到lib–ext目录下 这两个插件 然后再开启server监听服务 点击运行 结果出现

wang_chenyang的博客 226

JMeter 数据库压测实战:从配置到性能分析

本文详细介绍了使用JMeter进行数据库压测的实战指南,从环境配置到性能分析全面覆盖。通过模拟真实业务场景,帮助开发者快速掌握压测技巧,识别数据库性能瓶颈,提升系统稳定性与效率。重点讲解了JDBC驱动安装、线程组配置、参数化技巧等核心内容,并分享典型问题排查与进阶优化方案。

weixin_28840591的博客 193
上一篇: Python+Pycharm+Selenium+WebDriver 自动化环境搭建
下一篇: SoapUI WebService 接口测试
攻城狮崔同学
博客等级 码龄7年 1864粉丝 29原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值