Jmeter 分布式压测

2023-09-20 14:10:00

‍你可以使用 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执行中不会自动负载均衡,每一台服务器都会完整地运行测试计划。

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

在这里插入图片描述

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

更多推荐

静态顺序表及基本操作具体实现

静态顺序表及几个基本操作🎑定义一个顺序表🎑初始化——置空顺序表🎑创建一个顺序表🎑打印顺序表各结点的值🎊🎊顺序表基本操作🎃头插🎃尾插🎃头删🎃尾删🎊🎊查找🎋查找第i个节点的值🎋查找值为x的结点🎋在主函数中实现🎊🎊插入🎋在第i个位置添加元素x🎋在主函数中实现🎊🎊删除🎋删除顺序表中p

面试问题之如何解释微服务

这次的面试还是感觉非常愉快,没有那么憋屈,问的问题也非常有意思。问题假设现在有一个人完全不懂微服务,你能和对方解释下什么是微服务吗?面试回答这个问题如果要完全回答好,感觉不是那么容易。什么是微服务很多人都知道现代的开发流程多是前后端分离,后端采用部署服务的方式来提供服务。这种服务是可以根据业务来进行区分,也可以是根据架

Jmeter怎么实现接口关联?

用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取。1、打开jmeter,新建一个测试计划,在测试计划里新建一个线程组,新建一个登录的http请求,如图所示:2、查看登录返回的结果:3、充值接口需登录后才能操作,此时可以使用co

Hive 优化建议与策略

目录​编辑一、Hive优化总体思想二、具体优化措施、策略2.1分析问题得手段2.2Hive的抓取策略2.2.1策略设置2.2.2策略对比效果2.3Hive本地模式2.3.1设置开启Hive本地模式2.3.2对比效果2.3.2.1开启前2.3.2.2开启后2.4Hive并行模式2.5Hive严格模式2.5.1严格模式实现

Swift学习内容精选(二)

Swift类是构建代码所用的一种通用且灵活的构造体。我们可以为类定义属性(常量、变量)和方法。与其他编程语言所不同的是,Swift并不要求你为自定义类去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类,系统会自动生成面向其它代码的外部接口。类和结构体对比Swift中类和结构体有很多共同点。共同处在于:定

ZooKeeper学习笔记

目录1概述2安装3zoo.cfg配置4zk集群配置5客户端5.1节点类型5.2节点数据操作5.3监听器6springboot客户端7服务注册与发现7.1zk集群端7.2业务服务端7.3业务客户端8分布式锁9Curator框架1概述zk是基于观察者模式设计的;(观察者模式)zk是一个服务管理框、协调框架;zk服务本身也是

Docker从认识到实践再到底层原理(六-1)|Docker容器基本介绍+命令详解

前言那么这里博主先安利一些干货满满的专栏了!首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。高质量博客汇总然后就是博主最近最花时间的一个专栏《Docker从认识到实践再到底层原理》希望大家多多关注!Docker从认识到实践再到底层原理什么是容器通俗地讲,容器是镜

计算机视觉与深度学习-卷积神经网络-纹理表示&卷积神经网络-纹理表示-[北邮鲁鹏]

目录标题参考文章纹理定义纹理的分类规则纹理随机纹理纹理的表示方法基于卷积核组思路什么卷积核组卷积核类型(边缘、条形、点状)卷积核尺度(3~6个尺度)卷积核的方向卷积核组的设计表示步骤步骤一:设计卷积核组。步骤二:利用卷积核组对图像进行卷积操作获得对应的特征响应图组。步骤三:利用特征响应图的某种统计信息来表示图像中的纹理

计算机视觉(CV)技术

计算机视觉(CV)技术的优势:1.自动化和效率:计算机视觉可以自动地完成冗长和繁重的任务,并且可以实现高效率的数据处理。2.准确性:计算机视觉使用数学算法和模型进行数据分析,可以实现高准确性的结果,同时还可以通过学习算法改进准确性。3.可视化:计算机视觉可以将数据可视化,可以让人类更好地理解数据。4.非接触性:计算机视

Nuxt 菜鸟入门学习笔记:路由

文章目录路由Routing页面Pages导航Navigation路由参数RouteParameters路由中间件RouteMiddleware路由验证RouteValidationNuxt官网地址:https://nuxt.com/路由RoutingNuxt的一个核心功能是文件系统路由器。pages/目录下的每个Vue

大数据运维一些常见批量操作命令

大数据运维中,批量操作是一项常见的任务。在使用flume进行数据采集的过程中,有时会出现故障导致采集停止,此时积累了大量的文件。如果想要将这些文件迁移到新的目录,直接使用"mv"命令可能会因为文件数目过多而报错。为了解决这个问题,我们可以利用管道技术和"xargs"命令。"xargs"是一个用于给命令传递参数的过滤器,

热文推荐