jmeter分布式集群---部署多台机器进行性能压力测试

我们在进行压力测试的时候,随着模拟用户的增加,电脑的性能(CPU,内存)占用是非常大的,为了我们得到更加理想的测试结果,我们可以利用jmeter的分布式来缓解机器的负载压力,分布到多台机器同时运行。

1.Jmeter分布式执行原理:

  1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。

  2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开。

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

      4、在部署前请保证各slave机的防火墙处于关闭状态,master与各台slave都可以ping通。

1.代理机器(Agent)配置:

  1.首先安装好JDK,jmeter,配置好环境变量(版本需要于控制机统一)

  2.查看本机IP地址,打开“运行”,输入"CMD",然后输入“ipconfig”,找到IP地址:“IPv4地址”后面

   

  3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,1099是端口号,可以随意自定义。

   

4、修改代理电脑的Jmeter.properties文件,修改“server.rmi.ssl.disable”,将其值改为true,即server.rmi.ssl.disable=true(记得要去掉#号这个语句才能生效)关闭ssl功能

5、打开jmeter-server.bat文件,就设置完成了,等待控制机(Controller)启动。正常启动会在命令窗口显示  “Found ApacheJMeter_core.jar   Createred remote object:。。。”  等信息;

启动错误:  

Agent代理机启动:jmeter-server.bat,显示“could not find ApacheJMeter_core.ja”

方案:其实后面又显示“Found ApacheJMeter_core.jar”  = 。=   所以其实是没有问题的,如果还是想要一开始就显示“Found ApacheJMeter_core.jar”,那么就配置JMETER_HOME:

新建环境变量,比如我的:JMETER_HOME=C:\Users\Administrator\Desktop\apache-jmeter-4.0  (即jmeter根目录),然后编辑Path变量,在后面添加  %JMETER_HOME%\bin  记得与前面的路劲要用分号:隔开

2、Agent机启动:jmeter-server.bat,显示“java.io.FileNotFoundException:rmi_keystore.jks(系统找不到指定文件)”

方案:修改“server.rmi.ssl.disable”,将其值改为true(一开始配置的时候我没有修改这个所以报错了)

3、Controller机远程启动Agent机报错:Conne refused host:

方案:这个出错的可能性很多,可以检查一下防火墙有没有关掉(需要关掉防火墙),检查端口有没有被占用:tasklist | findstr "1099",检查电脑是否存在多网卡。

我这里出错的原因是Controller机没有修改“server.rmi.ssl.disable”为true;

 

注意:如果有参数化额文件,需要在代理机也存放一份参数文件;

2.控制机(Controller)配置:

1、Controller机上需要安装JDK、Jmeter,并且配置好环境变量。

2、打开“运行”,输入"cmd",打开运行面板,输入“ipconfig”,找到IP地址,例如是:192.168.8.174

  

3、打开Jmeter/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,把这一行修改为”remote_hosts=192.168.8.149:1099,192.168.8.174:1099,1099是端口号,可以随意自定义。如果有多台代理机,这里需要把所有的代理机的IP地址和端口号都加入进来。

4、打开jmeter-server.bat文件,设置完成了。

开始添加线程组和请求来运行查看结果:

1、打开jmeter.bat文件,添加线程组,编辑线程数,这里设置2000个线程数,执行五分钟,就是一台机器发送2000*300(s)个请求。

 

2、然后添加HTTP请求开始编写脚本。

3、添加察看结果数和聚合报告,点击运行,可以选择远程启动或者远程全部启动,如果是点击远程启动,可以选择任意一台电脑来运行,如果是点击远程全部启动就会运行控制机和所有的代理机。

posted @ 2020-10-28 18:44  anlcy  阅读(921)  评论(0编辑  收藏  举报