Jmeter分布式压测核心要点

01 背景

在使用Jmeter进行性能测试时,如果并发数比较大(比如最近项目需要支持4000并发),单台压测机的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能

 

02 原理

Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。

执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

 

03 Windows操作

  • 执行机(slave)配置:

slave机上需要安装JMeter并添加环境变量

修改slave机Jmeter的bin目录下jmeter.properties文件,修改如下两个配置项,比如我这里修改为1099:

图片

启动bin目录下的:jmeter-server.bat
多台slave时,重复1~2步骤即可

  • 调度机(master)配置

在master机器上找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及端口(端口可自定义),多台slave之间用","隔开,我这配置了2台:

图片

打开Jmeter,选好脚本及设置运行场景,选择远程全部启动(也可选择远程启动某一台slave)

 

04  Linux操作

1、 Linux系统中安装JMeter,并配置好JMeter环境变量

2、 在slave机上修改jmeter.properties中的端口,参考Windows下修改方法:

图片

比如我修改为1099:

图片

3、 开启执行脚本机器上的server服务,bin/jmeter-server

 
[root@gd-largetest-stress-102-15 bin]# ./jmeter-server

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

Using local port: 1099

Created remote object: UnicastServerRef [liveRef: [endpoint:[10.98.102.15:1099](local),objID:[-43550fae:15e7a5a6422:-7fff, -7419700032143407872]]]

4、 在master上修改bin/jmeter.properties,添加从机的IP及端口(使用-r启动所有从机)1099是默认的rmi通信端口

图片

5、 在控制机执行分布式命令

[root@gd-xwtest-yc-102-19 bin]# jmeter -n -t ../linux.jmx -R 10.98.102.15:1099 -l ../result.jtl  //指定从机IP    
[root@gd-xwtest-yc-102-19 bin]# ./jmeter -n -t ../linux.jmx -r -l ../linux.jtl  //启动所有从机执行脚本

 

05 其它说明

1、调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater

2、参数文件:如果使用csv等进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的。

3、如果在linux下用命令执行分布式测试时要传线程数、执行时间或循环次数等参数时,需使用-G参数,而不是-J,这个是踩坑过来的经验,执行命令如下

[root@gd-xwtest-yc-102-19 bin]# ./jmeter -n -t ../linux.jmx -r -l ../linux.jtl -Gusers=100 -Gtimes=900

 

 

  • 28
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter分布式压测是使用多台计算机同时执行JMeter测试计划,以模拟大量并发用户的压力。使用分布式压测可以有效提高负载能力,并避免单台机器的性能限制。在分布式压测中,一个JMeter主控节点负责管理所有的测试计划和生成结果报告,而多个JMeter工作节点则同时执行测试计划,并将结果返回给主控节点进行统计和分析。 要进行JMeter分布式压测,需要进行以下步骤: 1. 配置JMeter主控节点:在主控节点上,设置一个JMeter测试计划,并将其配置为分布式测试模式。在测试计划中,设置各个线程组、取样器和监听器等测试元素,以模拟真实的用户行为。 2. 配置JMeter工作节点:在每个工作节点上,安装并配置JMeter,并确保与主控节点在同一局域网中。工作节点需要拥有相同的测试计划文件和测试数据。 3. 启动主控节点:在主控节点上启动JMeter,并开始压测。主控节点会将测试计划和相关配置发送给各个工作节点,并收集并分析结果。 4. 启动工作节点:在每个工作节点上启动JMeter,并连接到主控节点。工作节点会接收主控节点发送的测试计划和相关配置,并执行测试计划。 5. 监控和分析结果:在压测过程中,可以通过主控节点的监听器查看实时结果,并在压测结束后生成详细的报告进行分析。 以上是JMeter分布式压测的基本流程。通过合理配置和管理分布式压测环境,可以更好地模拟真实的用户场景,评估系统的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值