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,相对稳定

        

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

        

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

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

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

相关文章

C#在并发编程使用Frozen来确保线程安全性

在C#中,Frozen方法通常用于通过不可变对象来确保线程安全性。这通常在并发编程中很有用,特别是在共享状态的多线程环境中。Frozen方法是Caliburn Micro框架中的一个方法,它用于将对象标记为不可变。 当你调用Frozen方法时,它返回…

云计算 2月26号 (进程管理和常用命令)

一、权限扩展 文件权限管理之: 隐藏权限防止root误删除 文件属性添加与查看 [rootlinux-server ~]# touch file1 file2 file3 1.查看文件属性 [rootlinux-server ~]# lsattr file1 file2 file3 ---------------- file1 ---------------- file2 ---------------- f…

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit

1.问题描述 实时验证和非实时验证的区别是什么? 解决方案 相同点: “手机号快速验证”和“实时验证”都是为了向用户发起获取手机号信息的请求。最终目的都是为了获取到手机号。这两种获取方式都需要完成“获取您的手机号”的Scope权限申请。 区别&…

UDP协议和TCP协议详解

文章目录 应用层自定义协议 传输层udp协议TCP协议1.确认应答2.超时重传3.连接管理建立连接, 三次握手断开连接, 四次挥手tcp的状态 4.滑动窗口5.流量控制6.拥塞控制7.延时应答8.携带应答9.面向字节流10.异常情况 应用层 自定义协议 客户端和服务器之间往往要进行交互的是“结构…

Eigen-约简,访问和广播

约简化,访客和广播 一、约简化1. 标准计算2. 布尔约减 二、访问三、部分约简1. 将部分约减与其他业务相结合 四、广播1. 将广播与其他业务相结合 一、约简化 在Eigen中,约简化是一个接受矩阵或数组并返回单个标量值的函数。最常用的约简方法之一是.sum(…

心法利器[108] | 微调与RAG的优缺点分析

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会。具体介绍:仓颉专项:飞机大炮我都会,利器心法我还有。 2023年新的文章合集已经发布,获取方式看这里:又添十万字-CS的陋室2023年文章合集来袭,更…

修复通达OA 百度ueditor 文件上传漏动

前些日子,服务器阿里云监控报警,有文件木马文件,因为非常忙,就没及时处理,直接删除了木马文件了事。 谁知,这几天对方又上传了木马文件。好家伙,今天不花点时间修复下,你都传上瘾了…

PHP【swoole】

前言 Swoole官方文档:Swoole 文档 Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。Swoole4 协程的成熟将 PHP 带入了前所未有的时期, 为性能的提升提供了独一无…

Dynamo初学尝试梳理

学习Dynamo有一段时间了,最近整理了下自己的笔记,分享一些给初学者,做个备忘吧!(PS:很多资料网上都能搜到,我仅仅是收集整理下笔记,分享给大家) 今天先简单介绍下Dynamo…

展厅设计中多媒体的常用技术

1、互动投影 可以大大提高展厅和观众之间的互动体验,使观众不仅可以享受观看,还可以在轻松娱乐的氛围中娱乐的氛围中享受每个展览的背景故事和内涵,使整个参观过程非常轻松愉快。 2、幻影成像 可以全面展示企业产品的生产过程,让观…

STM32 (4) GPIO(1)

1.芯片的引脚分布 2.普通IO引脚的命名规则 3.IO复用 IO引脚身兼数职的现象叫做IO复用,可以使芯片拥有更多的功能,例如: PA9和PA10既可以用于GPIO的引脚,也可以用于串口或定时器的引脚 通用:CPU直接控制IO引脚的输入输…

Linux:用户格式显示进程

简介 在Linux系统中,ps 命令用于查看当前系统中的进程。ps -aux 是该命令的一个常用选项组合,用于以用户格式显示所有进程。 ps -aux 输出的信息内容及含义: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND r…

【OpenGL编程手册-04】详细解释着色器

着色器 目录 一、说明二、着色器语言GLSL2.1 典型的着色器代码2.2 数据类型2.2.1 向量 2.3 输入与输出2.3.1 顶点着色器2.3.2 片段着色器 2.4 Uniform2.5 函数后缀含义2 .6 更多属性! 三、我们自己的着色器类四、从文件读取五、 编译着色器练习 一、说明 在Hello T…

shopee、美客多、敦煌、国际站卖家如何掌握测评补单的核心要素

对于卖家而言,测评补单是一种经济高效的推广策略,它对于提升商品流量、优化转化率、增强关键词质量分以及加强链接权重都起到了积极的推动作用。然而,要实现自养号测评,需满足以下条件: 首要之务,建立一个稳…

jenkins插件下载失败bug

如果遇到安装jenkins插件经常失败并报以下类似错误,很可能是因为jenkins国外官方插件地址下载速度非常慢,我们可以修改为国内插件地址。 java.io.IOException: Failed to load: SCM API Plugin (scm-api 676.v886669a_199a_a_) - Jenkins (2.361.4) or h…

详细分析Java类调用Service接口失效的注意事项(附Demo)

目录 前言1. 问题所示2. 原理分析3. 解决方法 前言 试错了一小时&#xff0c;发现接口返回null&#xff01;&#xff01; 最后梳理其知识点并总结其原理 1. 问题所示 接口类如下&#xff1a; public interface IInfoService extends BaseService<Info> {错误方式一&a…

【Zookeeper】ZooKeeper的一些重要功能和作用

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 结语 我的其他博客 前言 随着分布式系统的普及和应用场景的不断增加&#xff0c;构建可靠、高效的分布式系统变得愈发重要。然…

Vue 3 中如何迁移从 Vue 2 的项目?

引言 Vue.js 是一个流行的前端框架&#xff0c;它以其响应式数据绑定和组件化系统而闻名。随着时间的推移&#xff0c;Vue.js 也在不断发展和改进。Vue 3 是 Vue.js 的一个重大更新&#xff0c;它带来了许多新特性和改进&#xff0c;包括更好的性能、更小的体积、更强大的组合…

C 嵌入式系统设计模式 19:保护调用模式

本书的原著为&#xff1a;《Design Patterns for Embedded Systems in C ——An Embedded Software Engineering Toolkit 》&#xff0c;讲解的是嵌入式系统设计模式&#xff0c;是一本不可多得的好书。 本系列描述我对书中内容的理解。本文章描述嵌入式并发和资源管理模式之五…

Cesium 3D Tiles 简介

3D Tiles 是大规模异构 3D 地理空间数据集&#xff08;例如点云、建筑物和摄影测量&#xff09;的开放标准。3D Tiles 基于 glTF 和其他 3D 数据类型构建&#xff0c;是一种可类似二维瓦片模式的流式传输的优化格式&#xff0c;旨在适应当今不断增长的 3D 地理空间数据集的渲染…