jmeter 按流量阶梯式压测数据库

2024-03-04 09:20

本文主要是介绍jmeter 按流量阶梯式压测数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


当前版本:

  • jmeter 5.6.3
  • mysql 5.7.39

简介

    JMeter 通过 BZM - Arrivals Thread Group 来模拟并发到达的用户流量、按时间加压,可以有效地帮助测试人员评估系统在高压力和高并发情况下的性能表现。

        

文章目录如下

1. 下载插件

2. 界面说明

3. 测试步骤

 3.1. 添加压测线程组

3.2. 设置JDBC配置

3.3. 构造简单业务

3.4. 配置监听器

3.5. 运行测试

4. 按秒压测


        

1. 下载插件

地址如下(下载2个包,一个用于阶梯式压测,一个用于增加性能监听器)

Download :: JMeter-Plugins.org

注意:JMeter版本5.2.0以上)

将下载的两个zip包解压后,找到 JMeterPlugins-Standard.jar 和 JMeterPlugins-Extras.jar,放到 jmeter\lib\ext\ 下,重启 jmeter 生效。

        

2. 界面说明

添加阶梯式压测线程组

  • 右击测试计划 → 添加 → 线程(用户) → bzm - Arrivals Thread Group

        

界面说明

  • Target Rate:目标速率 (请求数,可以理解为最大吞吐量)。如果选择下面单位为分钟,那么这里的 10000 就是每分钟吞吐量达到10000;如果选择秒,则表示每秒达到10000。
  • Ramp Up Time:设置多久达到最大请求数
  • Ramp Up Steps Count:设置阶梯次数(默认0,直线上升)
  • Hold Target Rate Time:达到最大请求数后,设置继续运行时间
  • Time Unit:选择时间单位(minutes:分,second:秒)
  • Thread lterations Limit:线程迭代限制(每个线程执行测试计划的次数)
  • Log Thread Status into File:将线程状态记录到文件
  • Concurrency Limit:并发限制

        

3. 测试步骤

jmeter 通过如下组件来构造高并发:

bzm - Arrivals Thread Group     # 模拟吞吐量阶梯式压测
JDBC Connection Configuration   # 配置数据库连接信息
JDBC Request  # 构造业务

通过如下监听器来查看性能指标

聚合报告    # 查看整体性能指标
jp@gc - Response Times Over Time  # 查看响应时间走势图表
jp@gc - Transactions per Second   # 查看吞吐量走势图表
jp@gc - Active Threads Over Time  # 查看线程数走势

         

 3.1. 添加压测线程组

  • 右击测试计划 → 添加 → 线程(用户) → bzm - Arrivals Thread Group

需求:吞吐量在3分钟逐渐递增(共递增5次),最终吞吐量达到10000/分,达到1w后继续运行1分钟。配置如下:

        

3.2. 设置JDBC配置

  • 右击测试计划 → 添加 → 配置元件 → JDBC Connection Configuration

"""MySQL"""
URL:jdbc:mysql://[IP]:[端口]/[数库名]  # jdbc:mysql://localhost:3306/mysql
Driver:com.mysql.jdbc.Driver
"""Oracle"""
URL:jdbc:oracle:thin:@[IP]:[端口]:[数库名]  #jdbc:oracle:thin:@localhost:1521:orcl
Driver:oracle.jdbc.OracleDriver
"""PostgreSQL"""
URL:jdbc:postgresql://[IP]:[端口]/[数库名]  # jdbc:postgresql://localhost:5432/postgres
Driver:org.postgresql.Driver

        

3.3. 构造简单业务

  • 右击线程组 → 添加 → 取样器 → JDBC Request

简单读语句(仅举例) 

        

3.4. 配置监听器

  • 右击线程组 → 添加 → 监听器 → 聚合报告
  • 右击线程组 → 添加 → 监听器 → jp@gc - Response Times Over Time
  • 右击线程组 → 添加 → 监听器 → jp@gc - Transactions per Second
  • 右击线程组 → 添加 → 监听器 → jp@gc - Active Threads Over Time

所有基础配置如下:

        

3.5. 运行测试

        

【最终结果】聚合报告

        

【最终结果】响应时间

        

【最终结果】吞吐量

        

【最终结果】线程数

        

总结

我们配置的吞吐量为 10000/分,换算为每秒 10000 / 60 = 167。从上面测试结果来看,响应时间非常低,吞吐量很稳定,并且仅1个线程就能够满足要求,说明此次压测并没有达到数据库可承受的最大值,如果需要测试程序最大承受压力直接修改 Target Rate 即可。

        

4. 按秒压测

我们将单位设置为秒,那么设置的最大吞吐量就是每秒最大达到1000。这里分了5个阶梯,达到最大后持续运行 2+5分钟,观察是否指标稳定。

  • Concurrency Limit 限制了最大100个线程数。 

        

【结果如下】

吞吐量按需求持续增长,最终达到1000/s,相对稳定

        

线程数随着吞吐量的增加也是有所增长,整体也比较稳定

        

响应时间较快,也相对稳定。

这篇关于jmeter 按流量阶梯式压测数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772722

相关文章

Nginx如何进行流量按比例转发

《Nginx如何进行流量按比例转发》Nginx可以借助split_clients指令或通过weight参数以及Lua脚本实现流量按比例转发,下面小编就为大家介绍一下两种方式具体的操作步骤吧... 目录方式一:借助split_clients指令1. 配置split_clients2. 配置后端服务器组3. 配

Jmeter如何向数据库批量插入数据

《Jmeter如何向数据库批量插入数据》:本文主要介绍Jmeter如何向数据库批量插入数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Jmeter向数据库批量插入数据Jmeter向mysql数据库中插入数据的入门操作接下来做一下各个元件的配置总结Jmete

MySql中的数据库连接池详解

《MySql中的数据库连接池详解》:本文主要介绍MySql中的数据库连接池方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql数据库连接池1、概念2、为什么会出现数据库连接池3、原理4、数据库连接池的提供商5、DataSource数据源6、DBCP7、C

StarRocks数据库详解(什么是StarRocks)

《StarRocks数据库详解(什么是StarRocks)》StarRocks是一个高性能的全场景MPP数据库,支持多种数据导入导出方式,包括Spark、Flink、Hadoop等,它采用分布式架构,... 目录StarRocks介绍什么是StarRocks?StarRocks适合什么场景?StarRock

Windows环境下安装达梦数据库的完整步骤

《Windows环境下安装达梦数据库的完整步骤》达梦数据库的安装大致分为Windows和Linux版本,本文将以dm8企业版Windows_64位环境为例,为大家介绍一下达梦数据库的具体安装步骤吧... 目录环境介绍1 下载解压安装包2 根据安装手册安装2.1 选择语言 时区2.2 安装向导2.3 接受协议

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意