一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第1张图片

如果你做测试时间长了,一定会遇到性能测试问题,并且一定会是分布式的,要问为什么,你一定懂,就是单机能力太有限了,而性能测试的负载又是一个非常大的数据,所以分布式是一个必然的选择。
不管你选Loadrunner还是Jmeter攻击进行性能测试,你都躲不开分布式,下面就来看下在Jmeter中如何搭建分布式的环境吧。

目录

一、为何要分布式测试

二、分布式测试原理

三、分布式环境搭建

1、基础环境条件

2、主机配置

3、肉鸡配置

4、运行分布式脚本

四、注意事项

学习资源分享


一、为何要分布式测试

相信用过jmeter的小伙伴都知道,jmeter是100%纯java开发的程序,虚拟用户是以线程实现的,在大量并发情况下,很容易出现CPU、内存消耗过大的问题,甚至会出现java内存溢出。

一般一台电脑设置500~600线程数即可,如果超过1000线程,单机电脑就有点过高了,同时也还要关注本机电脑CPU、内存不能超过80%~90%的范围,否则会导致测试机本身的性能瓶颈,测试结果也会不准确。

二、分布式测试原理

  • 总控机器的节点Jmeter controller,其他产生压力的机器叫“肉鸡”(Jmeter server)
  • controller会把脚本发送到Jmeter server上
  • 执行的时候,server上只需要把jmeter-server打开就可以了,不用启动jmeter
  • 执行结束后,server会把压测数据回传给controller,然后controller汇总输出报告
  • 注意:必须保证主机和肉鸡安装相同的jdk和jmeter

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第2张图片

三、分布式环境搭建

1、基础环境条件

主机和肉鸡上都部署相同版本的JDK,并配置环境变量,肉鸡要求配置JMETER_HOME和环境变量path(主机只用path即可)。

主机和肉鸡上都复制解压相同版本的Jmeter。

2、主机配置

Step01:配置主机Jmeter的配置文件

  • 在Jmeter的bin目录下jmeter.properties文件中配置肉鸡IP和Port。
  • remote_hosts=10.9.44.249:1099,10.9.44.246:1099(多台slave之前用","隔开,我这配置了2台)
  • server_port=1099(可自定义,和肉鸡要一致)
  • server.rmi.ssl.disable=true

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第3张图片

Step02:启动jmeter GUI,设计一个性能测试脚本

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第4张图片

3、肉鸡配置

Step01:配置肉鸡Jmeter的配置文件

  • 在Jmeter的bin目录下jmeter.properties文件中配置。
  • remote_hosts=127.0.0.1:1099(肉鸡不用配置该参数)
  • server_port=1099(可自定义,和肉鸡要一致)
  • server.rmi.ssl.disable=true

step02:启动肉鸡服务

启动所有肉鸡jmeter安装目录下的bin目录下的jmeter-server.bat这个文件,目的是让主机能够监听到。但需要注意查看电脑网络连接中的虚拟网络是否禁用了,否则jmeter会出现IP使用错误(错误很可能是获取到了虚拟IP)。

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第5张图片

4、运行分布式脚本

step01:主控机器调用肉鸡

所有肉鸡都检查OK了,返回到主控机器电脑,在Jmeter GUI 的“运行”菜单下,选择“远程启动所有”即可。

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第6张图片

也可以通过命令行启动远程肉鸡,并执行脚本。

C:\Users\chang>jmeter -n -t e:\data\jmeter2104\ds.jmx -l e:\data\jmeter2104\result\xx.jtl -R 169.168.1.117
Creating summariser 
Created the tree successfully using e:\data\jmeter2104\ds.jmx
Configuring remote engine: 169.254.126.208
Starting remote engines
Starting the test @ Sun Feb 13 14:37:27 CST 2022 (1644734247414)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary =     10 in 00:00:01 =   10.0/s Avg:    18 Min:    13 Max:    43 Err:    10 (100.00%)
Tidying up remote @ Sun Feb 13 14:37:29 CST 2022 (1644734249740)
... end of run

step02:检查肉鸡运行状态

在肉鸡端,如果能监听到运行命令,并开始执行脚本,则环境配置正确。

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第7张图片

step03:查看主机运行结果

肉鸡运行脚本完成后,数据将返回到主控机器进行图表展示。

四、注意事项

  • 防火墙应该关闭,保证肉鸡和主机、肉鸡和被测系统之间能正常访问
  • 所有客户端应该都在同一个子网中,可以是同一局域网即可。
  • 确保jmeter可以访问服务器,脚本中IP一定是具体的地址,不能是localhost
  • 确保各个jmeter,java版本一致,不同版本可能会存在协同问题
  • 肉鸡上尽量不要安装虚拟机,或者虚拟禁用掉。

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第8张图片

  • 如果使用csv进行参数化,那么需要把参数文件在每台slave上拷一份且路径需要设置成一样的
  • 建议单独用一台机器作为mater,以保证所有负载机的数据一致性。
  • 如果设置的线程数为500、迭代1次,如果有4台肉鸡,结果为2000次运行
  • 如果设置线程数为500、迭代次数为-1(或者勾选永远),启动并设置调度时间为1200s(20分钟),则会按照调度时间去运行,次数不定(会因每次迭代时间不同而变化)。

一文2500字手把手教你使用jmeter进行分布式压力测试【保姆级教程】_第9张图片


学习资源分享

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

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

你可能感兴趣的:(自动化测试,技术分享,软件测试,软件测试,自动化测试,jmeter,接口测试,接口自动化测试)