Jmeter分布式性能测试环境部署
一、背景
在使用Jmeter进行性能测试的时候,由于Jmeter是java应用,对于CPU和内存的消耗比较大。因此,当需要模拟数以万计的请求时,Jmeter运行在一台测试PC上时很可能会引起java内存溢出错误。为了让Jmeter工具提供更大的负载能力,这时就要使用Jmeter提供的分布式功能来启动多台电脑(或服务器)来分压测试。
二、Jmeter分布式执行原理
1、Jmeter分布式测试时,选择其中一台作为控制机(Master),其它机器做为代理机(Slave)。
2、执行时,Master会把脚本发送到每台Slave上,Slave拿到脚本后开始执行,Slave执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。
3、执行后,Slave会把结果回传给Master,Master会收集所有Slave的信息并汇总。
三、分布式性能测试拓扑图
四、代理机(Slave)配置
1、Agent机上需要安装JDK、Jmeter,并且配置好环境变量。Jmeter环境变量配置请参考:
https://blog.csdn.net/qq_40646143/article/details/79578270
2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,如我的测试机ip地址是:10.50.128.86
3、打开Jmeter/bin/jmeter.properties,找到“remote_hosts=127.0.0.1”,把这一行修改为“remote_hosts=10.50.128.86:1099”,1099是端口号,可以随意自定义。
4、把jmeter.properties的334行改为server.rmi.ssl.disable=true
5、双击Jmeter bin目录下的jmeter-server.bat,启动成功的界面为:
五、主控机(Master)配置
主控机配置与代理机配置只有步骤3不一样,在主控机的Jmeter/bin/jmeter.properties的remote_hosts=后面添加所有Slave的IP和端口号,Slave之间用逗号分开。如果主控机本身也是一个代理,需要将主控机自己的IP地址和端口号也添加上:
六、调测与执行
测试与执行时,需要事先将所有代理机启动。
调测时:Run-->Remote Start可以指定具体某个代理机执行性能测试脚本。选择Run-->Remote Start All则所有的代理机同时开始执行性能测试脚本。其中代理机出现异常不会影响其他代理机的正常执行。
Run-->Remote Stop可以指定停止某个正在执行测试任务的代理机。选择Remote Stop All来停止所有正在执行测试任务的代理机。
性能测试执行时:推荐使用命令行模式
七、注意事项
如果主控机导入了外部资源或者jar包,那么代理机也要导入同样的资源或者jar包,且这些资源或jar包在代理机上的保存路径必须与主控机保持一致。
八、技能数