简述JMeter实现分布式并发及操作

为什么要分布式并发?

JMeter性能实践过程中,一旦进行高并发操作时就会出现以下尴尬场景,JMeter客户端卡死、请求错误或是超时等,导致很难得出准确的性能测试结论。

目前知道的有两个方法可以解决JMeter支撑高并发:

一是将JMeter部署在Linux服务器上,可以支撑的并发量远大于windows客户端,极少出现JMeter客户端卡死的情况;

另外一种方式就是今天要介绍的分布式。

简单来说,分布式就是将一次大的操作分布在多个服务器上,由多个服务器来承担负载压力。分布式并发的原理详见下图:

分布式并发实现步骤

打开JMeter,在运行->远程启动,可以看到只有"127.0.0.1"因此首先要在主压力机上配置远程负载机的IP,配置步骤如下:

1、Master(主压力机)在jmeter.properties中添加remote_hosts。

配置路径:...\apache-jmeter-3.2\bin 路径下的jmeter.properties。

remote_hosts=127.0.0.1 后面增加远程负载机的ip和端口号,如果需要添加多个,用逗号分隔就可以。

例如:remote_hosts=192.168..:1099,192.168..**:1099。

2、Slave(远程负载机)在jmeter.properties中添加server_port:

python 复制代码
server_port=1099
server.rmi.localport=1099

备注:这里的端口号可以自定义,只要与主压力机里面配置的一致即可。

3、Slave(远程负载机)启动Jmeter-server,启动成功后如下图所示:

配置完成后重启主压力机,查看远程启动,可查看到配置的远程负载机IP,如下图:

添加一个接口,进行远程启动:

1、添加一个线程组,然后添加一个Sampler里的HTTP请求:

2、以百度为例,添加监听器->查看结果树:

3、点击运行->远程全部启动,运行后查看结果树:

截至目前,分布式并发的配置已经完成,如果需要添加多台远程负载机,重复以上操作即可。

遇到问题

配置过程虽然很简单,但是也不是一帆风顺,在远程启动时遇到了拒绝连接的问题,如下截图显示:

遇到这种情况时,可能存在多种因素,可以参考以下步骤逐一排查:

1、远程负载机的Jmeter-server是否启动成功;

2、远程负载机是否处于联网状态;

3、防火墙是否处于关闭状态;

4.主压力机和远程负载机的JMeter版本是否一致。

在实战过程中也出现了这个问题,经过一番排查终于找到问题原因,是因为远程负载机上启动JMeter时,用jmeter.bat进行的启动,而不是jmeter-server.bat。

希望大家不要犯这样低级的错误。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

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

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

相关推荐
互联网杂货铺26 分钟前
单元测试、系统测试和集成测试知识总结
自动化测试·软件测试·测试工具·职场和发展·单元测试·测试用例·集成测试
昨天今天明天好多天1 小时前
【Hadoop】
大数据·hadoop·分布式
隔着天花板看星星1 小时前
Flink-DataStreamAPI-执行模式
大数据·分布式·flink
Kale又菜又爱玩2 小时前
Zookeeper实践指南
java·分布式·zookeeper
江湖十年2 小时前
如何基于 Go 语言设计一个简洁优雅的分布式任务系统
分布式·后端·go
阿华的代码王国3 小时前
【性能测试】Jmeter详细操作-小白使用手册(2)
jmeter·性能测试·测试
WeiLai11124 小时前
面试基础--Redis 缓存穿透、缓存击穿、缓存雪崩深度解析
java·redis·分布式·后端·缓存·面试·架构
shyの同学4 小时前
分布式ID生成方案:数据库号段、Redis与第三方开源实现
redis·分布式·mysql·id
独行soc4 小时前
2025年渗透测试面试题总结-字某跳动-安全研究实习生(三面)(题目+回答)
linux·服务器·安全·web安全·面试·职场和发展
菜鸟008811 小时前
蓝桥杯第二天:2023省赛C 1题 分糖果
c语言·职场和发展·蓝桥杯