一文2000字教你从0到1实现Jmeter 分布式压测

news2024/12/28 5:49:50

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

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

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

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

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

相关文章

技术资料MF74:将图像插入单元格注释

【分享成果,随喜正能量】须知往生净土,全仗信、愿。有信、愿,即未得三昧、未得一心不乱,亦可往生。且莫只以一心不乱,及得念佛三昧为志事,不复以信、愿、净念为事。。 我给VBA的定义:VBA是个人…

讯飞星火大模型V3.0 WebApi使用

讯飞星火大模型V3.0 WebApi使用 文档说明:星火认知大模型Web文档 | 讯飞开放平台文档中心 (xfyun.cn) 实现效果 初始化 首先构建一个基础脚手架项目 npm init vuelatest用到如下依赖 "dependencies": {"crypto-js": "^4.2.0",&q…

ClickHouse快速了解

简介 ClickHouse是一个开源列式数据库管理系统(DBMS),用于在线分析处理(OLAP): 列式存储:与传统的行式数据库不同,ClickHouse以列的形式存储数据,这使得在分析大量数据时…

嵌入式中C++ 编程习惯与编程要点分析

以良好的方式编写C class 假设现在我们要实现一个复数类complex,在类的实现过程中探索良好的编程习惯。 ① Header(头文件)中的防卫式声明 complex.h: # ifndef __COMPLEX__ # define __COMPLEX__ class complex {} # endif 防止头文件的内容被多次包含。 …

2.25每日一题(反常积分的计算:被积函数分母出现e的正负x次幂)

注:被积函数分母出现e的正负x次幂,这种情况需要把分母化成全部都是正次幂的情况再进行计算

【C语言】字符函数、字符串函数与内存函数

简单不先于复杂,而是在复杂之后。 目录 0. 前言 1. 函数介绍 1.1 strlen 1.1.1 介绍 1.1.2 strlen 函数模拟实现 1.1.2.1 计数器方法 1.1.2.2 递归方法 1.1.2.3 指针 - 指针方法 1.2 strcpy 1.2.1 介绍 1.2.2 strcpy 函数模拟实现 1.3 strcat 1…

基于标签的电影推荐算法研究_张萌

2 标签推荐算法计算过程 2.1 计算用户对标签的喜好程度 用户对一个标签的认可度可以使用二元关系来表示,这种关系只有“是”“否”两种结果,实际上难以准确地表达出用 户对物品的喜好程度。因此&#x…

云耀服务器L实例搭配负载均衡部署Linux 可视化宝塔面板

云耀服务器L实例搭配负载均衡部署Linux 可视化宝塔面板 1. 华为云云耀服务器L实例介绍 华为云云耀服务器L实例是一种高性能、高可靠性的云服务器实例,适用于大规模企业级应用、大数据分析等场景。它基于华为最新一代的硬件虚拟化技术,提供了更高的计算…

Azure - 自动化机器学习AutoML Azure使用详解

目录 一、AutoML是如何工作的?二、何时考虑AutoML?三、AutoML助力训练与集成过程四、实战案例五、总结 自动化机器学习,简称为AutoML,旨在将机器学习模型的开发中繁琐且重复的任务自动化。这使得数据科学家、分析师以及开发人员能…

ArcGIS笔记13_利用ArcGIS制作岸线与水深地形数据?建立水动力模型之前的数据收集与处理?

本文目录 前言Step 1 岸线数据Step 2 水深地形数据Step 3 其他数据及资料 前言 在利用MIKE建立水动力模型(详见【MIKE水动力笔记】系列)之前,需要收集、处理和制作诸多数据和资料,主要有岸线数据、水深地形数据、开边界潮位驱动数…

File文件查找

用的是递归调用, (递归死循环的结果是导致栈内存溢出错误) 一.代码 package org.example;import java.io.File;public class day03 {public static void main(String[] args) {//文件查找,在d:temp下查找改名.mp4sea…

前端的简单介绍

前端核心的分析 CSS语法不够强大,比如无法嵌套书写,倒是模块化开发中需要书写很多重复的选择器 没有变量和合理的样式复用机制,使逻辑上相关的属性值必须字面量的心事重复的输出,导致难以维护 CSS预处理器,减少代码的笨重&#…

IDEA中application.properties文件中文乱码

现象: 原因: 项目编码格式与IDEA编码格式不一致导致的 解决办法: 在File->Settings->Editor->File Encodings选项中,将Global Encoding,Project Encoding,Default encoding for properties files这三个选项置为一致&a…

设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点(C语言实现)

设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点(C语言实现) 这个代码网上基本都是直接照搬的王道,但是由于某些院校是明确要求用C语言实现,你那个C的引用符号&根本用不了,所以笔者这里用…

归结原理、归结演绎推理

主要内容 归结演绎推理范式子句与子句集将谓词公式转化为子句集命题逻辑鲁宾逊归结原理 归结演绎推理 定理证明的实质是对前提P和结论Q证明P →Q的永真性应用反证法,欲证明P →Q,只要证明 P∧~Q 等价于 F鲁宾逊归结原理对机械化推理有重大突破鲁宾逊归…

李宏毅老师浅谈机器学习

李宏毅老师浅谈机器学习 引例 - 宝可梦/数码宝贝 分类器如何定义损失函数?- 经验这里定义一个直观的loss函数根据全体数据,得到最好的模型参数(理想)如何衡量现实损失和理想损失接近程度?如何得到跟含所有样本数据集很像的取样数据…

【java学习—十】捕获异常(2)

文章目录 1. 什么是异常2. 异常处理机制3. 捕获异常总结3.1. try 和 catch3.2. 捕获异常的有关信息:3.3. finally 1. 什么是异常 如果程序运行时,某一行出现异常,将会使程序中断,不在继续执行,举个例子如下&#xff1…

Kubernetes简介篇

文章目录 前言应用部署Kubernetes能做什么总结 前言 Kubernetes(简称k8s)是一个开源的容器编排和管理工具,由Google开发并捐赠给Cloud Native Computing Foundation(CNCF)管理。它能够自动化部署、扩展和管理容器化应…

Unity主程如何做好游戏项目管理

前言 很多小伙伴最近在面试或者考虑跳槽,可能工作了3~5年了想涨薪或想做技术总监或主程, 可自己还是个雏,没有做过项目技术管理,怎么办?今天我给大家梳理一下作为一个技术总监或主程你应该如何带好一个游戏项目,做好技术管理。接…

基于混合蛙跳算法的无人机航迹规划-附代码

基于混合蛙跳算法的无人机航迹规划 文章目录 基于混合蛙跳算法的无人机航迹规划1.混合蛙跳搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用混合蛙跳算法来优化无人机航迹规划。 …