性能测试之JMeter分布式压测

597 篇文章 17 订阅
35 篇文章 2 订阅

在使用Jmeter进行性能测试时,如果并发数比较大时候,单机受限内存、CPU、网络IO,会出现服务器压力还没有上去,压测服务器已经由于模拟的压力太大变的很卡甚至死机,这时可以使用Jmeter提供的分布式测试的功能。

一、Jmeter分布式执行原理:

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

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

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

在这里插入图片描述

二、分布式压测环境部署

前提:

1、最好保证master和所有slave机器上的jmeter的版本相同

2、需要保证master和slave都在一个网络中,且在多网卡环境需要保证启动的网卡都在一个网段

3、如果windows系统作为master,Linux系统的服务器作为slave,还要注意master和slave的防火墙是否已经关闭,Linux系统的服务器关闭防火墙命令:

  • systemctl stop firewalld
  • systemctl status firewalld
  • systemctl disable firewalld
  • systemctl enable firewalld

步骤:

现在我的环境是master机器是windows机,一台slave机器是Linux系统机器。

1、master机器,打开jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=127.0.0.1,47.92.67.190(当有多个slave时,各个slave的ip中间用“,”分隔),

把默认的RMI端口号改成任意的值。
在这里插入图片描述2、slave机器自定义端口号

进入Jmeter的bin目录,找到jmeter.properties文件,打开该文件修改如下两个配置项,比如修改端口号为:9870(默认端口号为:1099)

server_port=9870

server.rmi.localport=9870
在这里插入图片描述
在这里插入图片描述运行jmeter-server文件,查看端口是否修改成功
在这里插入图片描述
3、slave机器jmeter jvm调优

为了掠尽所有执行机的硬件和网络资源,加强执行机的发压能力,还需要对每台执行机进行深度jmeter jvm调优(修改jmeter.bat中jmeter的内存参数,从512m调整为合适大小)

set HEAP=-Xms512m -Xmx4000m
set NEW=-XX:NewSize=256m -XX:MaxNewSize=512m

根据经验,堆值(HEAP)最多设置为物理内存的一半,默认设置为512m,如果堆值(HEAP)超过物理内存的一半,JMeter运行速度会变慢,设置会出现“内存溢出”的错误。

4、master机器上运行脚本,查看测试结果

运行->远程启动,选择要执行脚本的slave的机器
在这里插入图片描述
查看测试结果:
在这里插入图片描述

三、一些注意事项:

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

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

3、每台机器上安装的Jmeter版本和插件最好都一致,否则会出一些意外的问题

4、遇到执行失败时,可以查看调度机(master)和执行机(slave)上的Jmeter-server.log中的报错信息

比如:
在这里插入图片描述希望本文对你有所帮助~~如果对性能测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值