当前位置: 首页 > news >正文

Jmeter 分布式压测,你的系统能否承受高负载?

‍你可以使用 JMeter 来模拟高并发秒杀场景下的压力测试。这里有一个例子,它模拟了同时有 5000 个用户,循环 10 次的情况‍。

请求默认配置

token 配置

秒杀接口

​结果分析

​但是,实际企业中,这种压测方式根本不满足实际需求。下面介绍一种分布式压测。

使用场景

单台的JMeter压测能力有限,最大并发压测在1k内的,单机基本满足日常需求了。

但对于有项目来说,需要上万并发的压测,那就需要采用JMeter的分布式压测。

我根据下面思路简单介绍下

JMeter 分布式执行原理:介绍 JMeter 分布式压测的执行原理,包括 master 和 slave 的角色和工作流程。

环境搭建和配置:介绍如何搭建和配置 JMeter 分布式压测环境,包括 master 和 slave 的安装和配置。

测试脚本编写:介绍如何编写 JMeter 测试脚本来模拟秒杀场景。

执行测试和查看结果:介绍如何执行分布式压测并查看测试结果。

要模拟秒杀场景,你需要编写一个 JMeter 测试脚本来模拟用户登录、查看秒杀商品、点击秒杀按钮并下单的过程。

下面是一个简单的例子

添加线程组:添加一个线程组来模拟多个用户同时进行秒杀操作。

添加 HTTP 请求默认值:请求默认值元素来设置服务器名称、端口号和协议等信息。

添加 HTTP Cookie 管理器:管理用户登录后的 Cookie 信息。

添加登录请求:设置请求方法为 POST,路径为登录接口的 URL,并添加用户名和密码等参数。

添加查看秒杀商品请求:秒杀商品的操作。设置请求方法为 GET,路径为查看秒杀商品接口的 URL。

添加点击秒杀按钮请求:在线程组中添加一个 HTTP 请求元素来模拟用户点击秒杀按钮的操作。设置请求方法为 POST,路径为点击秒杀按钮接口的 URL,并添加必要的参数。

下面是具体的配置步骤

JMeter实现分布式并发

配置步骤:

1、master端配置

路径:bin/jmeter.properties,

搜索到remote

其中ip地址是我虚拟机自己设置的固定ip(强烈建议配置固定ip,防止后期连接不上报错,固定ip不会配置的见CC是谁:Linux虚拟机配置静态ip),端口也是在虚拟机配置文件中自己配置的,后面会讲

需要将remote_hosts中的127.0.0.1删除,否则“远程启动所有”时启动不起来

设置成功后在master端看到远程启动中包含了刚才配置的slave,如果看不到可以重启下JMeter

2、slave端配置

路径:bin/jmeter.properties,

搜索到1099,启用端口,保存

3、slave端启动

Jmeter-server(bin目录下)

注意:命令jmeter-server报错

修改命令为,后面ip是本机的ip,再次启动,成功:

./jmeter-server -Djava.rmi.server.hostname=192.168.8.14

4、master执行

配置了多台slave时,直接“远程启动所有”,所有远程服务器会同时启动

注意:若需要压测100,在10台机器,则线程设置10即可,jmeter执行中不会自动负载均衡,每一台服务器都会完整地运行测试计划。

4.1代表拒绝连接,slave

模拟秒杀场景,你需要编写一个 JMeter 测试脚本来模拟用户登录、查看秒杀商品、点击秒杀按钮并下单的过程。

配置步骤:

1、master端配置

路径:bin/jmeter.properties,

搜索到remote

其中ip地址是我虚拟机自己设置的固定ip(强烈建议配置固定ip,防止后期连接不上报错,固定ip不会配置的见CC是谁:Linux虚拟机配置静态ip),端口也是在虚拟机配置文件中自己配置的。

需要将remote_hosts中的127.0.0.1删除,否则“远程启动所有”时启动不起来

设置成功后在master端看到远程启动中包含了刚才配置的slave,如果看不到可以重启下JMeter

2、slave端配置

路径:bin/jmeter.properties,

搜索到1099,启用端口,保存

3、slave端启动

Jmeter-server(bin目录下)

注意:命令jmeter-server报错

修改命令为,后面ip是本机的ip,再次启动,成功:

./jmeter-server -Djava.rmi.server.hostname=192.168.8.14

4、master执行

配置了多台slave时,直接“远程启动所有”,所有远程服务器会同时启动

注意:若需要压测100,在10台机器,则线程设置10即可,jmeter执行中不会自动负载均衡,每一台服务器都会完整地运行测试计划。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

Jmeter 分布式压测,你的系统能否承受高负载?

‍你可以使用 JMeter 来模拟高并发秒杀场景下的压力测试。这里有一个例子,它模拟了同时有 5000 个用户,循环 10 次的情况‍。 请求默认配置 token 配置 秒杀接口 ​结果分析 ​但是,实际企业中,这种压测方式根本不满足实际需求。下…...

什么是浮动密封?

浮动密封也称为机械面密封或双锥密封,是一种用于各种行业和应用的特殊类型的密封装置。它旨在提供有效的密封和保护,防止污染物的进入以及旋转设备中润滑剂或液体的润滑剂泄漏。 浮动密封件由相同的金属环组成,这些金属环称为密封环&#xf…...

浅析前端单元测试

对于前端来说,测试主要是对HTML、CSS、JavaScript进行测试,以确保代码的正常运行。 常见的测试有单元测试、集成测试、端到端(e2e)的测试。 单元测试:对程序中最小可测试单元进行测试。我们可以类比对汽车的测试&…...

线上mysql表字段加不了Fail to get MDL on replica during DDL synchronize,排查记录

某天接近业务高峰期想往表里加字段加不了,报错:Fail to get MDL on replica during DDL synchronize 遂等到业务空闲时操作、还是加不了, 最后怀疑是相关表被锁了,或者有事务一直进行(可能这俩是一个意思)&…...

vue3使用element plus的时候组件显示的是英文

问题截图 这是因为国际化导致的 解决代码 import zhCn from "element-plus/es/locale/lang/zh-cn"; 或者 import zhCn from "element-plus/lib/locale/lang/zh-cn";const localezhCn<el-config-provider :locale"locale"><el-date-pic…...

Matlab参数估计与假设检验(举例解释)

参数估计分为点估计和区间估计&#xff0c;在matlab中可以调用namefit()函数来计算参数的极大似然估计值和置信区间。而数据分析中用得最多的是正态分布参数估计。 例1 从某厂生产的滚珠中抽取10个&#xff0c;测得滚珠的直径&#xff08;单位&#xff1a;mm&#xff09;为x[…...

qt响应全局热键

QT5 QWidget响应全局热键-百度经验...

android 代码设置静态Ip地址的方法

在Android中&#xff0c;可以使用以下代码示例来设置静态IP地址&#xff1a; import android.content.Context import android.net.ConnectivityManager import android.net.LinkAddress import android.net.Network import android.net.NetworkCapabilities import android.ne…...

Elasticsearch安装访问

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎&#xff0c;设计用于云计算环境中&#xff0c;能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性&#xff0c;可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…...

面试题-React(十):setState为什么使用异步机制?

在React中&#xff0c;setState的异步特性和异步渲染机制是开发者们经常讨论的话题。为什么React选择将setState设计为异步操作&#xff1f;异步渲染又是如何实现的&#xff1f;本篇博客将深入探究这些问题&#xff0c;通过代码示例解释为什么异步操作是React的一大亮点。 一、…...

入侵防御系统(IPS)网络安全设备介绍

入侵防御系统&#xff08;IPS&#xff09;网络安全设备介绍 1. IPS设备基础 IPS定义 IPS&#xff08;Intrusion Prevention System&#xff09;是一种网络安全设备或系统&#xff0c;用于监视、检测和阻止网络上的入侵尝试和恶意活动。它是网络安全架构中的重要组成部分&…...

【Linux基础】Linux的基本指令使用(超详细解析,小白必看系列)

&#x1f449;系列专栏&#xff1a;【Linux基础】 &#x1f648;个人主页&#xff1a;sunnyll 目录 &#x1f4a6; ls 指令 &#x1f4a6; pwd指令 &#x1f4a6;cd指令 &#x1f4a6;touch指令 &#x1f4a6;mkdir指令&#xff08;重要&#xff09; &#x1f4a6;rmdir指令…...

【无标题】Test

短视频平台的那些事 前言 过去几年&#xff0c;我一直专注于短视频平台的建设和开发工作。在这个过程中&#xff0c;我发现这个领域有着非常多的挑战和机遇&#xff0c;也涌现出了许多新的技术和创新。今天大家分享我个人的一些经验&#xff0c;希望能够为大家带来一些启发和帮…...

1576. 替换所有的问号

1576. 替换所有的问号 C代码&#xff1a;自己写的 char * modifyString(char * s){int n strlen(s);for (int i 0; i < n; i){if (s[i] ?) {if (i ! 0 && i ! n-1) {for (int j 0; j < 26; j) {if (a j ! s[i-1] && a j ! s[i1]) {s[i] a j;br…...

MySQL学习笔记(快速入门)

Mysql快速入门 一、数据库相关概念1.启动数据库2. 客户端连接3. 数据模型4.关系型数据库RDBMS 二、SQL语言1. 通用语法2. SQL分类 三、DDL数据定义语言1. 数据库操作2. 表操作&#xff08;1&#xff09; 查询当前数据库所有表show tables;&#xff08;2&#xff09; 查询表的结…...

使用DNS查询Web服务器IP地址

浏览器并不具备访问网络的功能&#xff0c;其最终是通过操作系统实现的&#xff0c;委托操作系统访问服务器时提供的并不是浏览器里面输入的域名而是ip地址&#xff0c;因此第一步需要将域名转换为对应的ip地址 域名&#xff1a;www.baidu.com ip地址是一串数字 tcp/ip的网络结…...

docker虚拟网桥和业务网段冲突处理

ifconfig查看docker虚拟网桥ip地址 docker inspect --format{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}} $(docker ps -aq)查询所有容器的ip 修改docker-compose networks networks xxx-network: driver: bridge ipam: c…...

axios登录,登出接口的简单封装步骤详解!

目录 总结一、步骤1.安装Axios&#xff1a;2.axios对象封装3.请求api封装4.使用pinia临时库保存响应信息&#xff08;按需求用&#xff09;5.最后&#xff0c;在组件中使用&#xff01; 总结 封装axios对象&#xff0c;编写公共请求代码、添加拦截逻辑、然后分层实现axios请求…...

九大装修收纳空间的设计,收藏备用!福州中宅装饰,福州装修

如果房子面积不大&#xff0c;收纳设计就显得非常重要。其实装修房子中很多地方都可以做收纳&#xff0c;九大空间每一处都可以放下你的东西&#xff0c;让你摆脱收纳烦恼。 收纳空间少的话&#xff0c;装修完后住久了怕会乱成一窝&#xff0c;因此装修的时候&#xff0c;收纳…...

软件工程概论

文章目录 软件的定义软件的特点软件的种类软件工程的起源软件工程的三个阶段软件工程概念的提出软件开发的本质软件工程框架软件工程的目标软件工程的原则软件工程的活动 软件的定义 计算机系统中的程序及其文档。 程序是计算任务的处理对象和处理规则的描述&#xff1b; 文档…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...